Einzelnen Beitrag anzeigen

Muetze1
(Gast)

n/a Beiträge
 
#12

Re: Durchschnittsfarbe eines TBitmap via Scanline?

  Alt 22. Jan 2008, 10:59
Zitat von Lossy eX:
@Muetze1: Nenn mich schwer von Begriff aber eine Sache ist mir nicht ganz klar. Denn für meinen Geschmack hängt deine Beschreibung etwas. Zu mindest auf Basis von normalen Fotos. Denn diese haben eigentlich immer 24 Bit und die Schritte sehen dann wie folgt aus. Ich setze 32 Bit Farbtiefe. Damit wird ein neues Bild erstellt und das aktuelle muss ein Mal komplett eingelesen und konvertiert werden. Schlussendlich muss dann das neue Bild noch ein Mal eingelesen werden um irgendwas damit anzustellen. Das bedeutet für mich, dass ich a) einen höheren Speicherverbrauch habe und ich b) so oder so das Bild 2 Mal einlesen muss. Direkt oder indirekt.

Wenn ich es jetzt aber auf 24 Bit lasse, dann ändert sich doch eigentlich gar nichts. Zu mindest wird doch eigentlich der Vorteil von einem 32 Bit Format doch wieder dadurch zerstört, dass ich erst einmal alle Bilder konvertieren muss. Korrigiere mich bitte wenn ich das falsch sehe.
Das Bild wird einmalig eingelesen und dann vom TBitmap Objekt im Speicher gehalten bzw. nur verwaltet. Die GDI behält die Daten mit den Pixelinformationen im Speicher (DIBits). Diese werden bei einer Farbtiefenänderung per WinAPI konvertiert und somit nicht nochmals neu dekodiert oder eingelesen, aber es wird ein neuer Speicherbereich für die neuen Pixeldaten angelegt und die alten dann freigegeben, das stimmt.

Wenn er gleich beim einladen auf 32 Bit dekodieren würde und die Daten immer so halten würde und nur für den Im- oder Export diese wandeln würde, dann wäre ein deutlicher Geschwindigkeitsvorteil zu merken. Afaik macht das die TBitmap32 aus der Graphics32 so und hat dadurch ihren merklichen Geschwindigkeitsvorteil.
  Mit Zitat antworten Zitat