Ich habe versucht, einige JPEG-Dateien in Delphi mit TImage-Komponente zu öffnen. Ich habe auch die Jpeg-Einheit hinzugefügt. Ich kann die meisten JPG-Dateien öffnen und es gibt kein Problem.
aber wenn ich versuche, einige JPGs zu öffnen, wirft das Programm einfach eine Ausnahme.
Ich habe auch versucht, diese Bilder im Entwurfsmodus zu laden, aber es gibt ein Problem. im Entwurfsmodus ist die Ausnahme:
Zugriff auf die Adresse 402672A1 im Modul 'vcljpeg70.bpl'. Schreiben Sie die Adresse 08E84000
Warum kann ich diese JPGs nicht öffnen? Sie sind nicht beschädigt. Ich habe sie in einigen Tools wie savantools EXIF Viewer überprüft.
Hier ist die URL eines dieser Bilder: Ссылка
Vielen Dank
PS: Meine Delphi-Version ist 7. Borland Delphi 7
Der Grund für das Auftreten dieses Problems liegt am Dateityp. Delphi hat Probleme, JPEG-Bilder anzuzeigen, die mit CMYK und nicht mit der Standard-RGB-Codierung codiert wurden. CMYK ist ein Format, das normalerweise für das Druckdesign verwendet wird. Versuchen Sie, Ihre Bilder immer im RGB-Format zu codieren, um dieses Problem mit Delphi zu vermeiden.
Patch für Delphi jpeg.dcu
Tschüss.
Interessant. Weder Internet Explorer noch Google Chrome werden das JPEG-Bild anzeigen, mit dem Sie verknüpft sind. Ich bekomme keine 404 Not Found Fehler, ich erhalte einfach einen Bildplatzhalter, der anzeigt, dass das Bild nicht richtig geöffnet / angezeigt werden konnte.
FireFox zeigt das Bild an.
Sind Sie sicher, dass die JPG-Dateien nicht fischig oder zumindest etwas ungewöhnlich sind?
UPDATE: Die mit der Frage verknüpfte Datei öffnet sich in PaintShop Pro (eine alte Version 6.0 Installation) - wenn ich dann einfach als Standard Encoding JPEG erneut speichere IE und Chrome zeigen das neu gespeicherte Bild wie erwartet an. Es scheint auf jeden Fall etwas "Ungereimtheit" bezüglich der Kodierung des Original-JPEG zu geben, mit der einige JPEG-Apps umgehen können, aber nicht alle, einschließlich einiger "Hauptakteure", nicht nur von Delphi. :)
Schauen Sie sich in Delphi die Free Image-Bibliothek für alternative JPEG-Unterstützung an, wenn die native Version Probleme hat. Free Image ist eine Open-Source-Lib, mit der Sie mit Delphi / BCB / und anderen mit JPEG / PNG / ... arbeiten können. Sehr schöne Bibliothek IMHO.
Ich habe mir die Datei mit einem Hex-Editor angeschaut und drei JFIF-Header gefunden. Nach dem Extrahieren jedes Teils fand ich 2 Vorschaubilder und ein Bild. Nichts besonderes, denn eingebettete Thumbnails scheinen Teil des EXIF2-Standard .
Die Thumbnails selbst laden sich in Delphi gut, und das Konvertieren der Datei in etwas Lesbares kann mit fast jeder Software, die ich ausprobiert habe, gemacht werden.
Wie auch immer, diese Seite gibt Ihnen sehr detaillierte Informationen über das Bild und welche Header darin enthalten sind (fügen Sie einfach die URL Ihres Bildes in das Textfeld ein):
Ich bekomme den gleichen Fehler. Dies scheint ein Fehler in Delphi's JPEG-Lib zu sein. Sie sollten es an QC melden.
SimDesigns NativeJpg kann diese Datei öffnen. Es ist eine vollständig in Delphi geschriebene JPEG-Bibliothek, und der Autor war gut darin, Unterstützung für neue Erweiterungen und Farbräume hinzuzufügen, wenn wir darauf gestoßen sind. Zusätzlich zu einem TGraphic-Nachkomme für die TImage-Unterstützung gibt es viele untergeordnete Schnittstellen für die Manipulation von JPEGs, obwohl ich sie nicht benutzt habe.