Registriert seit: 17. Jan 2003
Ort: Schieder-Schwalenberg
2.094 Beiträge
Delphi 2005 Personal
|
Farbtiefenänderung eines Bitmaps
27. Apr 2004, 22:28
Wenn man die Dateigröße von Bitmaps verringern möchte ändert man am einfachsten die Farbtiefe! Das bringt meistens eine enorme Verkleinerung der Dateigröße und die Bilder sehen trotzdem noch (je nach Änderung) gut aus...
Delphi-Quellcode:
//datentypen:
// BitmapXXbit = Bitmap mit 24, 32 usw. Bit
// Bitmap8Bit = Bitmap mit 256 Farben
// JPG = TJPegImage (uses jpeg!!) als utility
// Reduzieren der Bitmap Qualität mit dem Palette Optimizing von JPEG
function BMPReduceTo8Bit(BitmapXXBit: TBitmap): TBitmap;
vAR
JPG: TJPegImage;
Bitmap8bit: TBitmap;
begin
if BitmapXXBit <> nil then
begin
JPG := TJpegImage.Create;
JPG.CompressionQuality := 100; // <--damit die bitmap nicht komprimiert wird
JPG.Assign(BitmapXXBit); //<- BitmapXXBit -> JPG
JPG.JPEGNeeded; // <-- verwandle in JPEG!
JPG.PixelFormat := jf8bit; // 8 bit reduzierung
JPG.DibNeeded; // palette wird neu geschrieben, wieder bitmap fähig
bitmap8bit:=TBitmap.Create;
bitmap8bit.PixelFormat := pf8bit;
bitmap8bit.Assign(JPG); // JPG (8bit, opt.palette) -> BMP (8bit)
// bitmap8bit.SaveToFile('whatever.bmp'); <-speichern
JPG.Free;
Result:=Bitmap8Bit;
end; // if %Bmp ned nil
end; // Proc %bmp8bit
Klick! cyborg
Zitat zu dem Thema: ( Hier gefunden - Knapp unter Mitte der Seite)
Zitat:
Dateigröße reduzieren
Nachdem bei Pixel-Grafiken jeder einzelne Bildpunkt definiert wird, hängt die Dateigröße von folgenden Faktorn ab: - Von der Anzahl der Bildpunkte. So gibt es Digitalkameras die 1.3, 2, 3, 4 oder auch mehr Mio. Pixel bei einem Foto abspeichern.
- Von der verwendeten Farbtiefe = Farbenanzahl und deren Zusatzeigenschaften. Je mehr Farben verwendet werden, um so größer wird die Datei.
- Vom verwendeten Bildformat und deren Komprimierugsmöglichkeiten. JPG für Fotos, GIF für kleinere Bilder und Grafiken mit sehr wenig Farben.
Farbanzahl reduzieren
Bei manchen Grafiken können Sie fast ohne Qualitätsverlust die Dateigröße erheblich verringern, indem Sie die Anzahl der Farben heruntersetzen. Bei einem Foto genügen häufig 256 Farben bei einer Strichgrafik kann man mitunter mit noch viel weniger Farben auskommen. Allerdings gibt es dabei keine immer gültigen Regeln, man muss probieren.
Besonders bei GIF-Dateien verkleinert sich die Dateigröße stark, wenn die Farbenanzahl gesenkt wird.
HTH!
MfG Florian
[edit=Chakotay1308]Besser? Mfg, Chakotay1308[/edit]
[edit=flomei]Viel besser... ===> In Code-Lib verschoben...[/edit]
[edit=Matze]Code formatiert. Mfg, Matze[/edit]
[edit=flomei]Wir "räumen auf", daher Titel geändert... Mfg, flomei[/edit]
|
|
Zitat
|