*.jpeg Datei erstellen
ich weiss nich ob es zu Multimedia gehört...
ich habe einen Timer der jede Sekunde Zwischenablage ob da nen Bild drin is. wenn da eins drinne is soll der das als *.jpeg speichern. in einem ordner der Vorher festgelegt wird. Hier meine Frage: Wie kann ich so eine Datei erstellen? :?: der name der datei hat die Form: name := ('Bild von '+Timetostr(Zeit)+'.jpeg'); Wie geht das?? das der die datei erstellt? |
Re: *.jpeg Datei erstellen
Ich würde erst ein Bitmap draus machen und dann in Jpeg wandeln.
Delphi-Quellcode:
uses Jpeg;
... var Jpg: TJPEGImage; ... //Bitmap in -jpg wandeln JPG.Assign(aBmp); Achja, wenn das Bild gespeichert wurde, befindet es sich immer noch in der Zwischenablage. ==> Es wird dann jede Sekunde gespeichert. |
Re: *.jpeg Datei erstellen
Delphi-Quellcode:
clip: Clipboard; {unit clipbrd}
clip.clear; |
Re: *.jpeg Datei erstellen
hmm ja das is gut.
jaja, die ablage mach ich ja leer mit clipboard.Clear aber wie Speicher ich das jez ab, wie macht der die datei mit dem namen?? Und was is die var aBmp?? uiuiui mir is da grad was aufgefallen.... ich hba an keiner stelle meine Variable Datei :TDatei TDatei = File of TPicture auf das gesetzt was is der ablage is.... uiuiui |
Re: *.jpeg Datei erstellen
des jpeg hat .compress und .savetofile
|
Re: *.jpeg Datei erstellen
Delphi-Quellcode:
[edit=r_kerber]Delphi-Tags eingefügt. Mfg, r_kerber[/edit]
buf: TJPEGImage;
buf.Assign(Bitmap); buf.CompressionQuality := 50; buf.ProgressiveEncoding := true; buf.Compress; buf.SaveToFile('bild.jpg'); |
Re: *.jpeg Datei erstellen
Ich glaub, er meint wie er das Bild aus dem Zwischespeicher bekommt.
War das nicht PasteFromClipboard ? |
Re: *.jpeg Datei erstellen
und des aBmp muss ein TBitmap sein.
Delphi-Quellcode:
[edit=r_kerber]Delphi-Tags eingefügt. Mfg, r_kerber[/edit]
img: TBitmap;
img := TBitmap.create; if clip.HasFormat(CF_BITMAP) then begin img.LoadFromClipboardFormat(CF_Bitmap,clip.GetAsHandle(CF_Bitmap),0); clip.Clear; end; |
Re: *.jpeg Datei erstellen
und danach
Delphi-Quellcode:
img.free;
|
Re: *.jpeg Datei erstellen
also erst en bild createn, dann vom Clipboard laden, das jpgimage createn, abmp zuweisen, komprimieren, speichern und wieder freigeben. hats geholfen? :roll:
|
Re: *.jpeg Datei erstellen
Liste der Anhänge anzeigen (Anzahl: 1)
also erstmal danke für die hilfe
das läuft auch bis man die Screenshottaste drückt.... ich raff garnix mehr :wall: Ich häng ma die datei an.... |
Re: *.jpeg Datei erstellen
des jpg und clip sind auch objekte die man createn muss.
ausserdem ist das systemclipboard ne extra variable in clipboard: clip := Clipboard; |
Re: *.jpeg Datei erstellen
Delphi-Quellcode:
[edit=MrSpock]Codetags nach r_kerber zum 2. Mal eingefügt. Bitte ab jetzt selber machen. :mrgreen: Mfg, MrSpock[/edit]
procedure TForm1.FormCreate(Sender: TObject);
begin clip := Clipboard; // Systemzwischenablage img := TPicture.Create; end; |
Re: *.jpeg Datei erstellen
sorry ich meinte img: TPicture;
|
Re: *.jpeg Datei erstellen
Delphi-Quellcode:
soweit bin ich jez, aber da kommt immer ne Fehlermeldung wenn ich die Screenshottaste drück
Procedure TScreeny.Bild_Speichern;
Var Zeit :TDateTime; name :String; img: TPicture; Jpg: TJPEGImage; Begin Zeit := now; Clip := Clipboard; img := TPicture.create; Jpg := TJPEGImage.create; name := ('Bild von '+Timetostr(Zeit)+'.jpeg'); img.LoadFromClipboardFormat(CF_Bitmap,clip.GetAsHandle(CF_Bitmap),0); jpg.Assign(img); jpg.CompressionQuality := 50; jpg.ProgressiveEncoding := true; jpg.Compress; jpg.SaveToFile(name); clip.clear; img.Free; End; Function TScreeny.check_ClipBoard :Boolean; Begin if Clipboard.HasFormat(CF_TEXT) Then Result := False else if clipboard.HasFormat(CF_Bitmap) Then Result := True; end; |
Re: *.jpeg Datei erstellen
Hi. Welche Fehlermeldung denn? Da gibts ja viele :wink:
|
Re: *.jpeg Datei erstellen
grrr :evil:
ich hatte überlegt ob ich sie abschreiben soll, habs dann gelassen wil ich keinen bock hatte,aber wenn du soooo lieb fragst: "Im Projekt pScreeny.exe is eine Exception der Klasse EConvertError aufgetreten. Meldung : 'TPicture kann nicht zu TJPEGImage zugewiesen werden' Prozess wurde angehalten. rinzelanweisungen blablabla" |
Re: *.jpeg Datei erstellen
Dann liegt es wohl an dem
Delphi-Quellcode:
wo du versuchst, dem TJpeg ein TPicture zuzuweisen.
jpg.Assign(img);
Aber mal ne andere Frage: Wieso eigentlich TPitcure? Interessiert mich nur, weil ich es nicht ganz verstehe, warum da nicht z.B. ein TImage verwendet wird. :gruebel: Man liest sich, Stanlay :hi: |
Re: *.jpeg Datei erstellen
sorry was ich gepostet hab is nich all mein code:
ich hab das so:
Delphi-Quellcode:
kommt daher das ich in meinem programm keine jpeg funktion drin hab, die in nem anderen drin steckt. also jpegbild.assign will natürlich ein bitmap also würde ich
DesktopBitmap:TBitmap;
implementation {$R *.dfm} procedure scrshoot(); begin BitBlt(DesktopBitmap.Canvas.Handle,0,0,Screen.Width,Screen.Height,GetDC(GetDesktopWindow),0,0,SrcCopy); buf.Assign(DesktopBitmap); buf.CompressionQuality := 50; buf.ProgressiveEncoding := true; buf.Compress; end; sagen nimm mal picture.bitmap da nur picture aus dem clipboard laden kann. |
Re: *.jpeg Datei erstellen
Zitat:
natürlich dann auch
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin buf := TJPEGImage.Create; DesktopBitmap := TBitmap.Create; end; |
Re: *.jpeg Datei erstellen
Hi hboy. Danke für die Erklärung, jetzt kapier ich das auch :thumb:
Man liest sich, Stanlay :hi: |
Re: *.jpeg Datei erstellen
nett nett und was soll ich jetzt tun??
|
Re: *.jpeg Datei erstellen
kanns sein das du probleme mit den : aus der Zeit bekommst ?
|
Re: *.jpeg Datei erstellen
Zitat:
|
Re: *.jpeg Datei erstellen
Delphi-Quellcode:
des tut. habs grad getestet
function validtime(s:string):string;
var i: integer; begin for i := 1 to length(s) do if s[i] <>':' then result := result +s[i] else result := result +'_'; end; Procedure Bild_Speichern; Var Zeit :TDateTime; name :String; img: TPicture; Jpg: TJPEGImage; clip: TClipboard; Begin Zeit := now; Clip := Clipboard; if clip.HasFormat(CF_BITMAP) then begin img := TPicture.create; Jpg := TJPEGImage.create; name := ('c:\'+'Bild von '+validTime(Timetostr(Zeit))+'.jpg'); img.LoadFromClipboardFormat(CF_Bitmap,clip.GetAsHandle(CF_Bitmap),0); jpg.Assign(img.bitmap); jpg.CompressionQuality := 50; jpg.ProgressiveEncoding := true; jpg.Compress; jpg.SaveToFile(name); clip.clear; img.Free; jpg.Free; end; End; |
Re: *.jpeg Datei erstellen
hab ich doch....
der : in der zeit, hmm, der wird in dateinamen nich akzeptiert da könntest du recht haben... hmm, der QT den du da postest funzt bei mir net der selbe fehler WIE OBEN BESCHRIEBEN |
Re: *.jpeg Datei erstellen
Zitat:
|
Re: *.jpeg Datei erstellen
Zitat:
|
Re: *.jpeg Datei erstellen
Wenn du lieber freundlicher Luckie die beiträge richtig lesen würdest wäre dir auf gefallen das ich die entsprechende Fehlermldung bereits um 22:13 von mir Gepostet wurde in dem sinne :cheers:
|
Re: *.jpeg Datei erstellen
kommentier doch mal die compression quality und das progressive encoding aus
|
Re: *.jpeg Datei erstellen
Noch zu erwähnen wäre sicherlich, das der nach dieser Fehlermeldung mit so nem grünen Pfeil auf
Delphi-Quellcode:
steht
jpg.Assign(img.bitmap);
|
Re: *.jpeg Datei erstellen
muss es eigentlich jpg sein ? du kannst doch auch bitmaps speichern vorerst und sehen ob wenigstens das bei dir tut.
|
Re: *.jpeg Datei erstellen
Zitat:
BTW ist er schon seit 23.09.2003 hier angemeldet, er sollte also die Gepflogenheiten hier kennen |
Re: *.jpeg Datei erstellen
ja, ich versuchs ma nur als bmp
hab dich auch lieb Luckie :love: |
Re: *.jpeg Datei erstellen
Deklarier mal img als TBitmap. Und benenn mal die Variable name um, das ist in Delphi ein reserviertes Wort.
|
Re: *.jpeg Datei erstellen
Juhuuu es funktioniert.......
is ja geil, der speichert die ab danke vielmals juhuu jetzt kann ich endlich pennen gehn ICH DANKE EUCH FÜR EURE HILFE :dp: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:28 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz