[c++] bitmap und farbtiefe

schwabenmann

Grünschnabel
Hallo,

die Aufgabe besteht darin, aus der Zwischenablage ein Bitmap zu erhalten und das Bitmap anschließend in eine Bitmapdatei abzuspeichern.

Derzeit verwende ich die CDib-Klasse von Kruglinski und Sheperd. Das funktioniert auch ganz gut. Allerdings kommt da immer die Bittiefe der Windowsoberfläche mitrein, z.B. 32 Bit und wird entsprechend gespeichert. Nun habe ich allerdings für die weitere Bearbeitung ein Programm, das nur 24-Bit RGB verträgt.

Wer kennt eine Klasse oder einen Weg die Bilder aus der Zwischenablage in 24-Bit RGB auf Platte zu bringen unabhängig von der Bittiefe der Daten aus der Zwischenablage.

Grüße

Martin
 
Du könntest das Windows machen lassen. Erstell dir eine DIB-Section (CreateDIBSection) mit 24 bits, selektiere beide Bitmaps in je einen eigenen DC und lasse BitBlt die Arbeit machen.

Sonst müsstest du nämlich selbst für alle möglichen Eingangsformate (16 Farben wirds wohl nicht mehr geben, aber 256 (Palettenbasiert), 16-bit (nur 555 bei Windows), 24-bit (gibt es tatsächlich in sehr seltenen Fällen) und 32-bit) einen Umrechner schreiben.
 
Hallo,

inzwischen bin ich fündig geworden. Mit CxImage geht das einwandfrei. Das was ich benötige ist zwar nur ein kleiner Teil der Lib, aber es funktioniert. Dauert zwar bis alle DLLs erstellt sind, dafür kann ich nun auch als Jpg speichern (kleines Bonbon).

Danke

Martin
 
Zurück