Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Library: Grafik / Sound / Multimedia (https://www.delphipraxis.net/21-library-grafik-sound-multimedia/)
-   -   Delphi Farbtiefenänderung eines Bitmaps (https://www.delphipraxis.net/21095-farbtiefenaenderung-eines-bitmaps.html)

flomei 27. Apr 2004 21:28


Farbtiefenänderung eines Bitmaps
 
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... :D

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 :hi:

[edit=Chakotay1308]Besser? ;) Mfg, Chakotay1308[/edit]

[edit=flomei]Viel besser... :mrgreen: ===> 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]


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:06 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