![]() |
JPEG-Fehler: #41
Hi, habe folgendes Problem:
Ich öffne Bilder, mit TImage. Dann lade ich das bild in ein TJPEGImage ein. > jpg.assign(Image.Picture.Graphic); dieses JPG speichere ich in ein FileStream. > jpg.savetofilestream(fs); Nun will ich diese Datei wieder laden. > jpg.loadfromfilestream(fs); Das Funktioniert auch. Wenn ich das Bild ins Image wieder lade funkt das auch. > img.picture.assign(jpg); Manchmal kommt aber hier an der Stelle folgende Meldung: "JPEG-Fehler: #41" Vorallem wenn ich in der Datei mehr als ein Bild mit FileStream Speichere. was könnte das sein? |
Re: JPEG-Fehler: #41
Ich nochmal.
Ich habe noch ein bissel rum probiert. wenn ich das gleiche mit TBitmap mache funktioniert das super. Leider nicht mit JPEG. Nur das Erste Bild wird ordentlich geladen. Ich will mehrere Bilder in eine Datei per FS speichern aber die Bilder so stark wie möglich Komprimieren. Kann das sein das JPEGImage ein Bug hat? |
Re: JPEG-Fehler: #41
Hi! Willkommen in der DP! (Delphi-Groups reichen net mehr? ;) )
Ein kleiner Auszug aus dem ![]() Zitat:
Alternativ könnte man mit Resourcen arbeiten. Die lassen sich, so wie ich das mal las, auch nachträglich zur Laufzeit modifizieren. Wie genau, müsste bei Bedarf gesucht werden. Ich will nix falsches sagen :) gruss, dizzy |
Re: JPEG-Fehler: #41
Zitat:
Mein Quellcode funktioniert mit TBitmap und TPNGObject, aber nicht mit TJPEGImage :wiejetzt: . Wenn ich die Bilder Speichere und wieder lade, läd der bei JPEG mittels LoadFromStream nur das erste Bild, danach bringt der bei jedem weiteren Bild eine Fehlermeldung (siehe oben). Ich kann mir das erste Bild anzeigen lassen aber die anderen nicht :gruebel: . Ich habe dann einfach mal TJPEGImage mit TPNGObject überschrieben, das funktioniert auch, sowie TBitmap. Ich möchte aber die Foto-Bilder nicht mit PNG speichern, da Sie je größer sind. :wall: . Danke erstmal für dein Tipp, folgende Text gibt es mir aus "Empty input file". Ah das bild exisitiert nicht im Speicher, toll warum läd der das nicht aus/ins Stream? :wall: :wall: :wall: |
Re: JPEG-Fehler: #41
@all
Problem habe ich nun gelöst:
Code:
Ich habe nun diese 2 Funktionen zu speichern und lesen von JPEGImages erstellt.
function LoadJPGFromStream(FS: TFileStream; var JPG: TJPEGImage): boolean;
var MS: TMemoryStream; s: Cardinal; offset: cardinal; begin MS := TMemoryStream.Create; FS.ReadBuffer(S, sizeof(s)); offset := FS.Position; JPG.LoadFromStream(FS); FS.Position := offset + s; MS.free; end; function SaveJPGToStream(FS: TFileStream; JPG: TJPEGImage): boolean; var MS: TMemoryStream; s: Cardinal; begin MS := TMemoryStream.Create; JPG.SaveToStream(MS); s := MS.Size; FS.WriteBuffer(S, sizeof(s)); JPG.SaveToStream(FS); MS.free; end; Das Problem in JPEGImage liegt daran, das LoadFromStream immer zum ende des Streams springt. |
Re: JPEG-Fehler: #41
@all
Problem habe ich nun gelöst:
Code:
Ich habe nun diese 2 Funktionen zu speichern und lesen von JPEGImages erstellt.
function LoadJPGFromStream(FS: TFileStream; var JPG: TJPEGImage): boolean;
var MS: TMemoryStream; s: Cardinal; offset: cardinal; begin MS := TMemoryStream.Create; FS.ReadBuffer(S, sizeof(s)); offset := FS.Position; JPG.LoadFromStream(FS); FS.Position := offset + s; MS.free; end; function SaveJPGToStream(FS: TFileStream; JPG: TJPEGImage): boolean; var MS: TMemoryStream; s: Cardinal; begin MS := TMemoryStream.Create; JPG.SaveToStream(MS); s := MS.Size; FS.WriteBuffer(S, sizeof(s)); JPG.SaveToStream(FS); MS.free; end; Das Problem in JPEGImage liegt daran, das LoadFromStream immer zum ende des Streams springt. |
Re: JPEG-Fehler: #41
Ich vermisse eine Ressourcen-Schutzblock mit try-finally.
|
Re: JPEG-Fehler: #41
|
Re: JPEG-Fehler: #41
Zitat:
Aber gut, dass ich jetzt weiss wo ich suchen muss, denn ich progge auch recht häufig an Grafiksachen mit jpegs rum :mrgreen: gruss, dizzy PS: Dass DragonsLear diesen Thread noch nicht gefunden, und den auf DG geschlossen hat... :gruebel: |
Re: JPEG-Fehler: #41
schön freut mich das das nicht nur mir Hilf, sondern auch andere.
:-D |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:22 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