AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi PNG image von 8 Bit auf 24 Bit Farbtiefe konvertieren?
Thema durchsuchen
Ansicht
Themen-Optionen

PNG image von 8 Bit auf 24 Bit Farbtiefe konvertieren?

Offene Frage von "OldGrumpy"
Ein Thema von OldGrumpy · begonnen am 24. Nov 2006 · letzter Beitrag vom 24. Nov 2006
Antwort Antwort
Benutzerbild von OldGrumpy
OldGrumpy

Registriert seit: 28. Sep 2006
Ort: Sandhausen
941 Beiträge
 
Delphi 2006 Professional
 
#1

PNG image von 8 Bit auf 24 Bit Farbtiefe konvertieren?

  Alt 24. Nov 2006, 11:04
Hallo zusammen,

ich stehe momentan vor einem kleinen Problemchen, ich habe ein Fenster mit vorgegebenem Platz für ein Bild. Die Bilder liegen als PNG vor, leider nicht alle im richtigen Format. Wenn das PNG File 24 Bit Farbtiefe hat, kann ich es problemlos resizen, nur leider sind einige auch mit nur acht Bit Farbtiefe gespeichert. Kennt vielleicht jemand eine Möglichkeit, das vorliegende PNG von acht auf 24 Bit Farbtiefe aufzublasen damit ich es danach resizen kann? Manuelles Nachbearbeiten aller Files ist in diesem Fall leider keine Option

Momentan benutz ich die PngImage-Komponente von pngdelphi.sourceforge.net und eine Resize-Funktion die ein User von PngImage beigetragen hat (auch von der Website). Leider gibts da aber nix zum Manipulieren bzw. Konvertieren zwischen verschiedenen Farbtiefen...

Jegliche sachdienliche Hinweise sind hochwillkommen
"Tja ja, das Ausrufezeichen... Der virtuelle Spoiler des 21. Jahrhunderts, der Breitreifen für die Datenautobahn, die k3wle Sonnenbrille fürs Usenet. " (Henning Richter)
  Mit Zitat antworten Zitat
Der_Unwissende

Registriert seit: 13. Dez 2003
Ort: Berlin
1.756 Beiträge
 
#2

Re: PNG image von 8 Bit auf 24 Bit Farbtiefe konvertieren?

  Alt 24. Nov 2006, 13:54
Zitat von OldGrumpy:
Leider gibts da aber nix zum Manipulieren bzw. Konvertieren zwischen verschiedenen Farbtiefen...
Hi,
mal ungetestete zwei Tipps/Möglichkeiten. Die Information wieviele Bit pro Pixel verwendet werden und wie welcher Farbtyp verwendet wird, kannst du durchaus auslesen (und sogar verändern).
Da findest du die Eigenschaft TPngObect.Header.Bitdepth bzw. TPngObect.Header.Colortype. Das setzen dürfte allerdings wenig bringen (da hier kein Setter verwendet wird, dürfte das Setzen eher zu Problemen führen). Kannst es aber ja mal damit versuchen.

Ansonsten kannst du hier auf jeden Fall schon mal die PNGs filtern, die keine 24 Bit Farbtiefe (8 Bit / Pixel + RGB). Diese kannst du dann einem Bitmap zuweisen, das Pixelformat der Bitmap auf 24 Bit setzen und aus dieser Bitmap ein neues TPngObject erzeugen. Ist nicht wirklich elegant, aber sollte funktionieren.

Gruß Der Unwissende
  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 23:19 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