AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi TBitmap32 SaveToFile PNG...Wie?
Thema durchsuchen
Ansicht
Themen-Optionen

TBitmap32 SaveToFile PNG...Wie?

Ein Thema von torud · begonnen am 12. Nov 2007 · letzter Beitrag vom 20. Jan 2016
Antwort Antwort
torud

Registriert seit: 26. Jul 2002
Ort: Sachsen
1.198 Beiträge
 
Delphi XE5 Professional
 
#1

TBitmap32 SaveToFile PNG...Wie?

  Alt 12. Nov 2007, 07:16
Hallo Wissende,

folgender Code schlägt leider aufgrund Inkompatibilität fehl. Wie muss ich´s machen, damit es funzt, samt Transparenz?

Delphi-Quellcode:
var
  myPng : TPngObject;
begin
  myPng := TPNGObject.Create;
  myPng.Assign(img_btn_design.Bitmap);
  myPng.SaveToFile(App_Pfad + 'sample.png');
  myPng.Free;
end;
Dem Bitmap32 wurde vorher ein PNG mit Transparenzen übergeben. Anschliessend wurde auf dem Bitmap Text gerendert und nun soll das Bitmap wieder als transparentes PNG gespeichert werden. Benutzt wurden die GraficEx-Komponenten...

Tipps, Hinweise?
Danke
Tom
  Mit Zitat antworten Zitat
Benutzerbild von cruiser
cruiser

Registriert seit: 23. Dez 2003
Ort: Königsbrück/Sachsen
455 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: TBitmap32 SaveToFile PNG...Wie?

  Alt 12. Nov 2007, 07:30
GraphicEx hat nur eine mangelhafte PNG-Unterstützung...

steht auch im Graphics32 FAQ

PNGdelphi sollte bessere Ergebnisse bringen...

Meine Favoriten sind aber immer noch die PNG Components.
  Mit Zitat antworten Zitat
torud

Registriert seit: 26. Jul 2002
Ort: Sachsen
1.198 Beiträge
 
Delphi XE5 Professional
 
#3

Re: TBitmap32 SaveToFile PNG...Wie?

  Alt 12. Nov 2007, 08:05
So gayts auch, wobei ich da noch nicht gecheckt habe, ob die Transparenzen erhalten bleiben...

Delphi-Quellcode:
var
  myPng : TPngObject;
  myBmp : TBitmap;
begin
  myPng := TPNGObject.Create;
  myBmp := TBitmap.Create;

  myBmp.Assign(img_btn_design.Bitmap);
  myPng.Assign(myBmp);
  myPng.SaveToFile(App_Pfad + 'sample.png');
  myPng.Free;
  myBmp.Free;
end;
Danke
Tom
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#4

Re: TBitmap32 SaveToFile PNG...Wie?

  Alt 20. Jan 2008, 10:55
Auch wenn das etwas her ist, aber folgendermaßen funktioniert es leider nicht:
Delphi-Quellcode:
function SaveBitmap32ToPNGFile(AFileName: string; srcbmp32: TBitmap32): bool;
var
  PNG: TPNGObject;
begin
  Result := FALSE;

  PNG := TPNGObject.Create;
  try
    PNG.Assign(srcbmp32);
    PNG.SaveToFile(AFileName);
  finally
    PNG.Free;
  end;
end;
Ergebnis:
Zitat:
---------------------------
Timetaptop
---------------------------
TBitmap32 kann nicht zu TPNGObject zugewiesen werden.
---------------------------
OK
---------------------------
MfG
xZise
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: TBitmap32 SaveToFile PNG...Wie?

  Alt 19. Jan 2016, 15:00
Zitat:
PNG.Assign(srcbmp32);
Dafür müsste TPNGObject den Typ TBitmap32 kennen, was eine vollkommen schwachsinnige Abhängigkeit ergäbe,
damit das TPNGObject den Inhalt von TBitmap32 übernehmen könnte.

Fazit: Nicht Assign/AssignTo, sondern die Größe des PNG festlegen und dann auf dessen Canvas das Bitmap drauf malen.

Alternativ: TBitmap32 kennt TPNGObject und hat eine entsprechende Übergabefunktion implementiert. (ebenfalls eine blöde Abhängigkeit)
dann srcbmp32.AssignTo(PNG);
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#6

AW: TBitmap32 SaveToFile PNG...Wie?

  Alt 19. Jan 2016, 17:22
srcbmp32.AssignTo(PNG);
Eine protected Methode kann man aber nicht so ohne Weiteres verwenden

Und wenn TBitmap32 das TPngObject bekannt ist, dann macht man trotzdem PNG.Assign( srcbmp32 ); . Genau für dieses Szenario gibt es eben Assign und AssignTo .
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)

Geändert von Sir Rufo (19. Jan 2016 um 17:27 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von bernau
bernau
Online

Registriert seit: 1. Dez 2004
Ort: Köln
1.268 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: TBitmap32 SaveToFile PNG...Wie?

  Alt 19. Jan 2016, 19:49
Der Thread ist 8 Jahre alt. Rekord?
Gerd
Kölner Delphi Usergroup: http://wiki.delphitreff.de
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#8

AW: TBitmap32 SaveToFile PNG...Wie?

  Alt 19. Jan 2016, 21:10
Der Thread ist 8 Jahre alt. Rekord?
Nein, war passiv aktiv => http://www.delphipraxis.net/1327482-post13.html
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von bytecook
bytecook

Registriert seit: 6. Aug 2010
Ort: Dornbirn
151 Beiträge
 
Delphi 11 Alexandria
 
#9

AW: TBitmap32 SaveToFile PNG...Wie?

  Alt 20. Jan 2016, 08:27
Zitat:
PNG.Assign(srcbmp32);
Dafür müsste TPNGObject den Typ TBitmap32 kennen, was eine vollkommen schwachsinnige Abhängigkeit ergäbe,
damit das TPNGObject den Inhalt von TBitmap32 übernehmen könnte.

Fazit: Nicht Assign/AssignTo, sondern die Größe des PNG festlegen und dann auf dessen Canvas das Bitmap drauf malen.

Alternativ: TBitmap32 kennt TPNGObject und hat eine entsprechende Übergabefunktion implementiert. (ebenfalls eine blöde Abhängigkeit)
dann srcbmp32.AssignTo(PNG);
Richtig, das Graphics32 Framework unterstützt bewusst keine Lade- / Speicherroutinen, abgesehen vom Bitmap Format. Lade- sowie Speicherfunktionen gibt es allerdings in Drittunits,
teilweise auch von Mitautoren / Verwaltern wie Christian (cwbudde). Anbei der Link zu seinem GR32_Png Library: http://sourceforge.net/projects/gr32pnglibrary/

Gruß,

Peter
Peter

Geändert von bytecook (20. Jan 2016 um 08:37 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:49 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