Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Problem mit JPG-Datei (https://www.delphipraxis.net/86225-problem-mit-jpg-datei.html)

Pytho 11. Feb 2007 11:32


Problem mit JPG-Datei
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ich hab ein Programm geschrieben das aus einem Computerspiel (Warcraft III) die Bilddateien auslesen können soll, solche Programme gibt es zwar schon zuhauf, aber naja, auf jeden Fall ist bei mir da ein komisches Problem aufgetreten. Ich konnte die Datei schon extrahieren (man muss dazu nur die richtigen Teile der Datei auslesen und wieder zusammensetzten) und auf der Festplatte als Jpeg speichern, allerdings ist scheinbar ein Fehler drinnen, der es z.B. Delphi unmöglich macht das Bild zu verwenden. Im Windows-Explorer, Paint, und einem anderen Grafikprogramm wird das Bild ohne Probleme angezeigt, in Delphi und auch im Firefox wird nur ein Fehler angezeigt. (Wenn ich Versuche die Datei mit Delphi in ein bmp umzuwandeln erhalte ich eine Zugriffsverletzungs Meldung, aber auch wenn ich der Image Komponente im Objekteditor das Bild zuweisen will erhalte ich einen Fehler).
Meine Frage jetzt: was könnte das sein, irgendeine Anweisung die Delphi/Firefox braucht, oder nicht versteht?
Hat da jemand eine Idee?

DGL-luke 11. Feb 2007 11:43

Re: Problem mit JPG-Datei
 
Hallo,

du könntest versuchen das ganze über GDI+ zu laden. gibt bei torry ne lib mit hadern/wrappern.

EDIT: Hier, das müssts sein.

Pytho 11. Feb 2007 15:56

Re: Problem mit JPG-Datei
 
Etwas umständlicher als erhofft, aber ich hab es hinbekommen und es geht, vielen Dank :)

DGL-luke 11. Feb 2007 16:01

Re: Problem mit JPG-Datei
 
Gut zu hören. KÖnntest du vielleicht deine Lösung kurz posten, damit jemand, der nach sowas sucht, es gleich findet?

Pytho 11. Feb 2007 23:02

Re: Problem mit JPG-Datei
 
Hmm, also das sieht jetzt so aus:

Delphi-Quellcode:
uses GDIPAPI,GDIPOBJ,ActiveX;
procedure DrawJPG(
jpgStr: TStream; //Enthält den Code des JPG-Bildes
CaV: TCanvas //Darauf will ich zeichnen
);
var
graphics: TGPGraphics;
image: TGPImage;
istr: IStream;
begin
  graphics:=TGPGraphics.create(CaV.Handle);
  jpg_str.Seek(0,soFromBeginning);
  istr:=TStreamAdapter.Create(jpg_str) as IStream;
  image:=TGPImage.Create(istr);
  graphics.DrawImage(image,0,0);
  graphics.Free;
  image.Free;
  jpg_str.free;
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:38 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