![]() |
Jpeg Zu Bitmap Fehler
hi,
in meinem code möchte ich eine jpeg datei in eine bmp datei umwandeln. dazu habe ich folgenden code verwendet:
Delphi-Quellcode:
uses jpeg;
procedure JpegToBmp(const Filename: String); var jpeg: TJPEGImage; bmp: TBitmap; begin jpeg:=TJPEGImage.Create; try jpeg.LoadFromFile(Filename); bmp:=TBitmap.Create; try bmp.Assign(jpeg); bmp.SaveToFile(ChangeFileExt(Filename, '.bmp')); finally bmp.free; end; finally jpeg.free; end; end;
Delphi-Quellcode:
Aber immer wenn der Code ausgeführt werden soll, kommt die Fehlermeldung "Jpeg Fehler oder Error #53"!!!
if radiobutton1.checked = true then begin
JpegToBmp(ExtractFilePath(Application.ExeName) + '\Image' + inttostr(i) + '.jpg'); end; Hoffe ihr könnt mir bei diesem problem helfen! MFG Lars Wiltfang |
Re: Jpeg Zu Bitmap Fehler
(a)
Delphi-Quellcode:
sollte nur verwendet werden, mal die Suche hier benutzen!
if RadioButton.checked then
(b) Ist der Dateiname (Path+FileName) richtig? [Edit] (c) Notfalls die Größe/Pixelformat selbst setzen und per Draw ins Bitmap "kopieren" |
Re: Jpeg Zu Bitmap Fehler
Evtl. eine JPEG-Codierung die von der Delphi-Implementierung nicht erkannt/unterstützt wird?
|
Re: Jpeg Zu Bitmap Fehler
Schon mal eine andere JPEG - Datei versucht ? Möglicher Weise ist diese Jpeg def. oder hat eine
andere Kompression zB. JPG2000, diese kann die Delphiunit für JPEG's nicht ab. Den Fehler findest du (mit Hilfe der DP-eigenen Suche) öfters hier in der DP. ;) |
Re: Jpeg Zu Bitmap Fehler
was? also ich hab bei uses jpeg eingebunden wenn du dass meinst :) und der dateiname ist eigentlich auch richtig! Soll ich mal den GAAAAAAAAAAAAnzen code posten?
hab das jpeg zuvor hiermit erzeugt:
Delphi-Quellcode:
SaveWebcamPictureDIB(PChar(ExtractFilePath(Application.ExeName) + '\Image' + inttostr(i) + '.jpg'),handle1);
|
Re: Jpeg Zu Bitmap Fehler
Hallo,
ich weiß nicht ob es etwas ausmacht, aber ExtractFilepath hat schon einen BackSlash am Ende. Ein weiterer wäre dann doppelt. Grüße Klaus |
Re: Jpeg Zu Bitmap Fehler
Ähm, dadurch das du einem DIB die Endung JPG anhängst wird es noch lange kein JPEG... Oder verstehe ich da jetzt etwas falsch?
|
Re: Jpeg Zu Bitmap Fehler
Nur weil Du als .jpg abspeicherst, ist es noch lange keine.
Du speicherst eine *.dib-Datei ab und keine JPEG-Datei. |
Re: Jpeg Zu Bitmap Fehler
aha und was muss ich da machen? ps offtopic kann man da beim abspeichen vielleicht gleich noch son qualität kleiner machen ? offtopic
|
Re: Jpeg Zu Bitmap Fehler
Eine DIB-Datei kannst Du wie ein Bitmap handhaben. Das heißt, Du musst das Bitmap erst in ein jpeg umwandeln, wenn Du es als solchen speichern willst. Wie das geht? Schau Dir Deine Procedure zum Umwandeln von JPEG zu Bitmap mal an und drehe dessen Funktion einfach um.
Die Qualität kannst Du per .Quality einstellen. |
Re: Jpeg Zu Bitmap Fehler
wie habe ich das jetzt richtig verstanden??? ich muss also nur jpeg dtat bmp hinten dran schreiben wenn dass sowiso n bitmap ist und kann das mit der konvertier funktion weglasen?
|
Re: Jpeg Zu Bitmap Fehler
Nein, kannst Du nicht.
Die Funktion "SaveWebcamPictureDIB" speichert eine DIB-Datei. Diese musst Du erst zu einem jpeg umwandeln, wenn Du es als solches willst. Und wie das geht, ist genau das gleiche, wie Deine Funktion oben, nur eben andersrum. |
Re: Jpeg Zu Bitmap Fehler
evtl. so von Jpeg zu BMP:
Delphi-Quellcode:
var
Bitmap: TBitmap; Stream: TFileStream; begin Bitmap := TBitmap.Create; try Bitmap.LoadFromFile(ParamStr(1)); with TJPEGImage.Create do try Assign(Bitmap); if ParamCount > 1 then CompressionQuality := StrToIntDef(ParamStr(2),100); Stream := TFileStream.Create(ChangeFileExt(ParamStr(1),'.JPG'),fmCreate); try SaveToStream(Stream) finally Stream.Free end finally Free end finally Bitmap.Free end; end; |
Re: Jpeg Zu Bitmap Fehler
sicher? aber in dem codelib beitrag "Webcam speichern in Delphi" oder wie das heißt, war der beispiel code auch gleich als jpeg dh. die prozedur hieß so wie ich sie habe :)
|
Re: Jpeg Zu Bitmap Fehler
Ja und? Nur weil es da so steht, heißt das nicht, dass es so ist.
Schau Dir die ![]() |
Re: Jpeg Zu Bitmap Fehler
ok, nochmal zur qualität als compression: wie muss ich das in meinem code einbinden? kann ich das dirket mit in das Save dib oder wie das heißt machen???
|
Re: Jpeg Zu Bitmap Fehler
Die Kompression ist eine Eigenschaft von JPEG-Dateien, nicht von DIBs.
|
Re: Jpeg Zu Bitmap Fehler
ist es ncith möglich das hier irgendwie mit einzunehmen???
Delphi-Quellcode:
ode hier???:
SaveWebcamPictureDIB(PChar(ExtractFilePath(Application.ExeName) + '\Image' + inttostr(i) + '.jpg'),handle1);
Delphi-Quellcode:
handle1 := capCreateCaptureWindow('Video',ws_child+ws_visible, 0,
0, 320, 240, Panel1.Handle, 1); //Wie du siehst, brauchst du ein Panel in diesem Beispiel ;-) SendMessage(handle1, WM_CAP_DRIVER_CONNECT, 0, 0); SendMessage(handle1, WM_CAP_SET_PREVIEWRATE, 30, 0); sendMessage(handle1, WM_CAP_SET_OVERLAY, 1, 0); SendMessage(handle1, wm_cap_set_preview, 1, 0); |
Re: Jpeg Zu Bitmap Fehler
Vielleicht solltest Du mal nachsehen, was DIB eigentlich heißt.
Device Independent Bitmap |
Re: Jpeg Zu Bitmap Fehler
Wie gesagt, DIB <> JPEG. Ein DIB hat keine Kompression, Du musst es erst ins JPEG-Format umwandeln, damit Du es komprimieren kannst.
Am geschicktesten wäre es wohl in "SaveWebcamePictureDIB" |
Re: Jpeg Zu Bitmap Fehler
Der Code in der Codelib. ist von mir, bitte um Entschuldigung wegen dem Missverständnis JPEG <> DIB.
Habe aber schon einen Antrag auf Änderung eingereicht :-D |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:08 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz