Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Error beim Laden von JPG-Dateien (https://www.delphipraxis.net/139880-error-beim-laden-von-jpg-dateien.html)

Frederik 7. Sep 2009 15:39


Error beim Laden von JPG-Dateien
 
JPG-Dateien sollen in ein Bitmap konvertiert werden, um z. B. die Größe oder die Hintergrundfarbe zu ändern.

Nun liegen mir JPG-Dateien vor, bei denen das Ganze nicht klappt. Folgenden Code verwende ich:
Delphi-Quellcode:
jpg := TJPEGImage.Create;
jpg.LoadFromFile(sDatei);
try
   jpg.dibNeeded; //Hier krachts
except on e: Exception do begin
   msgbox(e.message);
end;
end;
try
    bmp := TBitmap.Create;
    bmp.assign(jpg);
except end;
In den verwendenten JPG-Dateien stehen folgende Eigenschaften: Farbmodell: JPEG CMYK(v1.2); Format: JPEG CMYK. Wurde wohl mit Photoshop bearbeitet und als jpg gespeichert. Ich nehme an, dass es daran liegt. Wie kann ich nun auch ein solches Bild öffnen und bearbeiten?

Bernhard Geyer 7. Sep 2009 15:43

Re: Error beim Laden von JPG-Dateien
 
Was hat das mit Datenbanken zu tun :gruebel:

turboPASCAL 7. Sep 2009 16:38

Re: Error beim Laden von JPG-Dateien
 
Zitat:

Zitat von Bernhard Geyer
Was hat das mit Datenbanken zu tun :gruebel:

Jo, ist wohl eher bei Multimedia oder zur Not bei VCL besser aufgehoben.



Zitat:

Zitat von Frederik
JPG-Dateien sollen in ein Bitmap konvertiert werden, um z. B. die Größe oder die Hintergrundfarbe zu ändern.

Nun liegen mir JPG-Dateien vor, bei denen das Ganze nicht klappt. Folgenden Code verwende ich:

In den verwendenten JPG-Dateien stehen folgende Eigenschaften: Farbmodell: JPEG CMYK(v1.2); Format: JPEG CMYK. Wurde wohl mit Photoshop bearbeitet und als jpg gespeichert. Ich nehme an, dass es daran liegt. Wie kann ich nun auch ein solches Bild öffnen und bearbeiten?

K.A. ob das am Jpegformat liegt. Sicher das es an deiner markierten Stelle kracht ? Versuch mal folgendes:

Delphi-Quellcode:
begin
  bmp := TBitmap.Create;
  try
    jpg := TJPEGImage.Create;
    try
      jpg.LoadFromFile(sDatei);
      jpg.dibNeeded;
      try
        if ASSIGNED(jpg) then bmp.assign(jpg);
      except
        on e: Exception do msgbox(e.message);
      end;
    finally
      jpg.Free;
    end;
  except
    on e: Exception do msgbox(e.message);
  end;

  // bmp.Free nicht vergessen
end;

Frederik 8. Sep 2009 08:35

Re: Error beim Laden von JPG-Dateien
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,

vielen Dank erstmal für die schnelle Antwort und sorry für die falsche Kategorie "Datenbanken". Hab einfach da, wo ich gerade war auf "Neues Thema" geklickt und das war dann wohl in "Datenbanken". Ist wohl ein Anfängerfehler - wird nicht wieder vorkommen.

Der Fehler tritt leider immer noch auf. Wie gesagt, ich denke, dass es an dem Bild liegt. Aber hier mal die Error-Message: "Zugriffsverletzung bei Adresse 004D9B75 in Modul "Text.exe". Schreiben von Adresse 0560C000". Mir sagt das leider nicht viel... Beim Testen gestern hatte ich allerdings zeitweise eine andere Fehlermeldung, die ich nun nicht mehr bekomme: "JPEG-Fehler #42". Würde mich mal interessieren, was der Fehler bedeudet. Also wer es weiß, bitte antworten!

Das Bild übrigens läßt sich von anderen Graphikprogrammen öffnen und nachdem dieses abgespeichert wurde, kann ich es auch per Code laden. Ein Speichern des Bildes per "MSPaint" als jpg endet allerdings mit folgender Meldung: "Diese Datei kann nicht gespeichert werden. Der Speichervorgang wurde unterbrochen. Die Datei wurde nicht gespeichert." Möchte ich die Datei aber als bmp speichern, funktioniert das wunderbar.

Ich häng mal so ein Bild an, vielleicht hilft es ja weiter.

DP-Maintenance 8. Sep 2009 08:41

DP-Maintenance
 
Dieses Thema wurde von "mkinzler" von "Datenbanken" nach "Multimedia" verschoben.
Hat nichts mit Datenbanken zu tun

turboPASCAL 8. Sep 2009 10:16

Re: Error beim Laden von JPG-Dateien
 
Ja, da kommst du mit der Dielphi-eigenen Unit nicht weiter.
Diese ist IMHO etwas veralted.

Entweder nutzt du externe Komponenten wie zB. diese: http://www.hi-components.com/nindex.asp

oder nutzt die GDIPlus DLL von Windows (ab XP).

Frederik 8. Sep 2009 12:50

Re: Error beim Laden von JPG-Dateien
 
Wie genau kann ich nun die GDIPlus.dll für meine Problem-Bilder verwenden? So wie ich gelesen habe, kann man damit z. B. auf eine Paintbox zeichnen, aber wie kriege ich das jpg da hinein?

Hat es denn jemand geschafft, das Bild ohne Fehler in einer ImageBox anzuzeigen?

turboPASCAL 9. Sep 2009 07:47

Re: Error beim Laden von JPG-Dateien
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von Frederik
Wie genau kann ich nun die GDIPlus.dll für meine Problem-Bilder verwenden? So wie ich gelesen habe, kann man damit z. B. auf eine Paintbox zeichnen, aber wie kriege ich das jpg da hinein?

Siehe Beispiel. Allerdings ohne Paintbox sondern mit einem (T)Image.
Das sollre aber an sich nun kein Problem darstellen.

Zitat:

Zitat von Frederik
Hat es denn jemand geschafft, das Bild ohne Fehler in einer ImageBox anzuzeigen?

Ja. ;)

Frederik 9. Sep 2009 09:04

Re: Error beim Laden von JPG-Dateien
 
Vielen Dank, funktioniert super!!

Auf euch kann man sich eben verlassen. :)

Grüße Frederik

Bernhard Geyer 10. Sep 2009 12:35

Re: Error beim Laden von JPG-Dateien
 
Zitat:

Zitat von turboPASCAL
Ja, da kommst du mit der Dielphi-eigenen Unit nicht weiter.
Diese ist IMHO etwas veralted.

Genauso wie die verwendeten Image-Komponenten des IE8. Dieser kann die JPEG-Datei auch nicht darstellen - Windows (Vista) schon. Soviel zum Theme Wiederverwendung von Komponenten.


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:40 Uhr.
Seite 1 von 2  1 2      

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