Die Funktion DIBOptimize erzeugt eine Kopie der einheitenunabhängige Bitmap-Grafik hDIB mit dem kleinstmöglichen Speicherbedarf ohne Datenverlust.
HDIB WINAPI DIBOptimize( |
||
HDIB |
hDIBSource, |
|
UINT |
uFlags) |
hDIB |
HDIB |
Handle der DIB-Bitmap, für die eine optimierte Darstellung erzeugt werden soll., |
uFlags |
UINT |
Optionale Zusatzflags: |
DIBOPTIMIZE_OPTIMIZEPALETTE Minimiert die Anzahl der Farbpaletteneinträge. |
||
DIBOptimize analysiert den Inhalt von hDIBSource um festzustellen, wie viele unterschiedliche Farben in der DIB vorkommen. Bis zu 2 Farben können mit biBitCount = 2 ausgedrückt werden. Bis zu 16 Farben können mit biBitCount = 4 ausgedrückt werden. Bis zu 256 Farben können mit biBitCount = 8 ausgedrückt werden. Hat hDIBSource eine höhere Farbtiefe, so wird eine Kopie mit der minimalen Farbtiefe erzeugt. |
||
Rückgabewert |
||
Der Rückgabewert ist das Handle einer neuen DIB falls die DIB optimiert werden konnte. Er ist NULL, wenn keine kleinere Darstellung der DIB innerhalb der DIB-Spezifikation möglich ist oder ein Verarbeitungsfehler auftrat. |
||
Anmerkungen |
||
Wenn das Flag DIBOPTIMIZE_OPTIMIZEPALETTE gesetzt wird, dann kann DIBOptimize die Anzahl der Farbpaletteneinträge (RGBQUAD-Strukturen) im DIB Header optimieren. Die Anzahl tatsächlich vorhandener Einträge in die DIB wird im Member biClrUsed der BITMAPINFOHEADER-Struktur angegeben. Die resultierende DIB ist innerhalb der DIB Spezifikation, kann aber von manchen Anwendungsprogrammen nicht verarbeitet werden, wenn sie mittels .BMP-Datei oder Zwischenablage in andere Anwendungen übertragen wird, wenn diese die Spezifikation nicht vollständig implementieren. |
||
DIBOptimize erstellt die kleinstmögliche Darstellung einer Grafik im .bmp Format. |
||
Die Verwendung dieser Optimierung für Grafiken, die in den Formaten JPEG, JPEG 2000 oder TIFF mit JPEG-Kompression gespeichert werden sollen, ist nutzlos. |
||
Anwendungsbeispiele |
||
Die Funktion kann z.B. verwendet werden, um im Stapelbetrieb Grafiken aus unterschiedlichsten Quellen zunächst mit ipImportInd zu importieren, dann mit DIBOptimize zu optimieren und die optimierte Darstellung mit ipExportInd zu speichern. Die Optimierung führt in den meisten Fällen auch zu kleineren Dateien in komprimierten Datenformaten wie TIFF und PNG. Die Verwendung dieser Funktion erreicht jedoch nicht dasselbe Kompressionspotentiel wie spezialisierte Software wie z.B. pngcrush. |