Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   png aus TImage herausspeichern als Bitmap (https://www.delphipraxis.net/183606-png-aus-timage-herausspeichern-als-bitmap.html)

bernhard_LA 22. Jan 2015 11:40

png aus TImage herausspeichern als Bitmap
 
ich lade ein png Bild in eine TImage Kompente mit folgendem Code

Delphi-Quellcode:
  gv = class (...)
      .....
      procedure execute;
      png : TPngImage;
      end;



  try
    gv. ....
    gv. ....
    gv.Execute;
    aImage.picture.Assign(gv.Png);
  finally
    gv.Free;
   
  end;

das ganz ist sehr ähnlich zu http://stackoverflow.com/questions/2...o-cbuilder-xe5

Funktioniert auch soweit.


jetzt versuche ich das Bild mit diesem Code als *.bmp zu speichern

Delphi-Quellcode:
 Image1.Picture.Bitmap.SaveToFile('c:\temp\myimage.bmp');
und bekomme 2 Probleme

a) Datei kann nicht geöffnet werden " Fehler ist leer , 0 Kbyte"
b) die Anzeige von Image1 (TImage) wird weiss.

baumina 22. Jan 2015 12:06

AW: png aus TImage herausspeichern als Bitmap
 
Gehst einfach über ein Bitmap, so in der Art (ungetestet):

Delphi-Quellcode:
var
Bitmap: TBitmap;

begin
  Bitmap := TBitmap.Create;
  Bitmap.Assign(gv.Png);
  aImage.picture.Assign(Bitmap);
  aImage.Picture.Bitmap.SaveToFile('c:\temp\myimage.bmp');
  Bitmap.Free;

Progman 22. Jan 2015 12:08

AW: png aus TImage herausspeichern als Bitmap
 
Vielleicht hilft es, den Canvas des TImage.Picture in ein neues TBitmap zu kopieren und dieses zu speichern?

Edit: zu langsam :-)

Sherlock 22. Jan 2015 15:03

AW: png aus TImage herausspeichern als Bitmap
 
Weil ich das richtig schön mächtig finde: Delphi-Referenz durchsuchenTWICImage

Sherlock


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