Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.171 Beiträge
 
Delphi 12 Athens
 
#2

AW: DNG- und Tiff-Bilder in Bitmaps umwandeln

  Alt 5. Okt 2011, 10:27
Wenn du auf Image1.Picture.Bitmap zugreifst und Picture.Graphic keine TBitmap-Instantz ist, dann wird dort ein TBitmap erstellt und das "alte" Bild (die alte TGrafic-Instanz) gelöscht.
Dabei wird aber der Bildinhalt nicht kopiert (leider).
*1


Nimm also Image1.Picture.Graphic zum Auslesen.

Falls das nicht geht, dann eben manuell:
Delphi-Quellcode:
mybitmap.Width := Image1.Picture.Width;
mybitmap.Height := Image1.Picture.Height;
mybitmap.Canvas.Draw(0, 0, Image1.Picture.Graphic);



[add]

*1)
Wobei du dieses hättest auch selber rausbekommen können.
Du hast ja schließlich nicht umsonst die VCL-Quellcodes mitgeliefert bekommen ... da kann man also auch mal nachsehn, was wo passiert und warum es nicht funktionieren mag.
Delphi-Quellcode:
procedure TPicture.ForceType(GraphicType: TGraphicClass);
begin
  if not (Graphic is GraphicType) then
  begin
    FGraphic.Free; // warum die aber kein FreeAndNil verwenden, ist mir unklar
    FGraphic := nil;
    FGraphic := GraphicType.Create;
    ...
  end;
end;

function TPicture.GetBitmap: TBitmap;
begin
  ForceType(TBitmap);
  Result := TBitmap(Graphic);
end;

property Bitmap: TBitmap read GetBitmap write SetBitmap;
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu ( 5. Okt 2011 um 10:46 Uhr)
  Mit Zitat antworten Zitat