Einzelnen Beitrag anzeigen

Benutzerbild von rollstuhlfahrer
rollstuhlfahrer

Registriert seit: 1. Aug 2007
Ort: Ludwigshafen am Rhein
1.529 Beiträge
 
Delphi 7 Professional
 
#1

[GDI+]Bild wird nicht richtig geladen

  Alt 1. Jan 2011, 13:40
HI,

ich versuche mit Hilfe von GDI+ verschiedene Bilder zu laden. Leider klappt das nicht bei allen. So leifert Windows XP 4 Beispielbilder mit, von denen nur 3 richtig dargestellt werden. Unterbau der Lade-Funktion ist folgendes:
Delphi-Quellcode:
function LoadImage(FileName: TFileName; Image: TBitmap): boolean;
var
  graphics: TGPGraphics;
  Source: TGPImage;
begin
  // First: Load the Image from file
  Source := TGPImage.Create(FileName);

  Result := (Source.GetLastStatus = Ok);
  if Result then
  begin
    // Second: Apply changes to the destination
    Image.Width := Source.GetWidth;
    Image.Height := Source.GetHeight;

    // Third: Get Device Context to draw
    graphics := TGPGraphics.Create(Image.Canvas.Handle);

    // 4.: Draw! ( There must be some ERROR, cause on some Pictures this doesn't work in the right way! )
    graphics.DrawImage(Source, 0, 0);

    // 5.: Free objects
    graphics.Free;
  end;

  Source.Free;
end;
Wie hier bei Schritt 4 angegeben, funktioniert das Zeichnen des GDI+-Bildes in ein TBitmap nicht sonderlich gut. Zur weiteren Verwendung des Bildes brauche ich aber das Bild möglichst in einem TGraphic-kompatiblen Objekt. TBitmap eignet sich dazu am Besten (wegen .Canvas).
Wie das aussieht, wenn ein Bild nicht gut geladen wurde, sieht man im Anhang. Die Windows-Bild-und Faxanzeige schafft es aber trotzdem, das Bild richtig darzustellen. Außerdem tritt der Fehler nicht bei allen Bildern eines bestimmten Typs auf und hängt nicht mit dem Dateinamen zusammen.

Bernhard
Miniaturansicht angehängter Grafiken
zeichnenbug.png  
Bernhard
Iliacos intra muros peccatur et extra!
  Mit Zitat antworten Zitat