![]() |
Wie kann ich in guter Qualität 24Bit zu 8Bit konvertieren ?
hi
natürlich wenn man ein Bitmap von oben von 24Bit nach unten 8Bit die Farbe reduziert, verliert das Bild ein Bisschen Qualität muss man eine Funktion erstellen, die das Bitmap von 24Bit zu 8Bit konvertiert ? oder reicht es, wenn ich folgendes machen :|
Delphi-Quellcode:
var
my8bit : TBitmap; begin my8Bit:=TBitmap.Create; my8Bit.assign(Image1.Picture.Bitmap); // image1: 24Bit my8Bit.Pixelformat:=pf8Bit; ... |
AW: Wie kann ich in guter Qualität 24Bit zu 8Bit konvertieren ?
Höchst wahrscheinlich gar nicht.
Bei 24Bit hast du 8Bit pro Farbe (RGB). Ein 8-Bit Bild verwendet eine Farbpalette, wobei jeder Eintrag der Palette 6Bit pro Farbe verwendet. Zuerst musst du mal ermitteln, wieviel verschiedene Farbwerte im 24Bit Bild enthalten sind, wenn dies weniger als 256 sind, dann musst du die einzelnen Werte auf die 18Bit zu mappen. Bei mehr als 256 Farbwerten, müssen dann mehrere Farbwerte auf den selben Wert abgebildet werden. |
AW: Wie kann ich in guter Qualität 24Bit zu 8Bit konvertieren ?
hier im Forum habe ich diese Funktion gefunden und schon getestet. es ist OK
Wenn ich das Bitmap direkt über die Funktion selbst speichere dann funktioniert aber wenn ich das Bild durch Aufruf über das Button, dann wird das Bild nicht in 8bit sondern in 24 Bit konvertiert ! Vielleicht rufe ich die Funktion falsch auf :
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin Image1.Picture.LoadFromFile('24BitBild.bmp'); BMPReduceTo8Bit(image1.Picture.Bitmap); // ist richtig so ? Image1.Picture.Bitmap.SaveToFile('8BitBild.bmp'); ![]() |
AW: Wie kann ich in guter Qualität 24Bit zu 8Bit konvertieren ?
da das ganze eine funktion ist solltest du es vielleicht so aufrufen
Function BMPReduceTo8Bit(BitmapXXBit: TBitmap): TBitmap;
Delphi-Quellcode:
Kannst auch ein 2tes Image erstellen
procedure TForm1.Button1Click(Sender: TObject);
begin Image1.Picture.LoadFromFile('24BitBild.bmp'); Image1.Picture.Bitmap := BMPReduceTo8Bit(image1.Picture.Bitmap); Image1.Picture.Bitmap.SaveToFile('8BitBild.bmp'); end;
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var Image2: TImage; begin Image2 := TImage.Create; Image1.Picture.LoadFromFile('24BitBild.bmp'); Image2.Picture.Bitmap := BMPReduceTo8Bit(image1.Picture.Bitmap); Image2.Picture.Bitmap.SaveToFile('8BitBild.bmp'); end; |
AW: Wie kann ich in guter Qualität 24Bit zu 8Bit konvertieren ?
Es ging. Danke
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:32 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz