AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Wie kann ich in guter Qualität 24Bit zu 8Bit konvertieren ?
Thema durchsuchen
Ansicht
Themen-Optionen

Wie kann ich in guter Qualität 24Bit zu 8Bit konvertieren ?

Ein Thema von thomas2009 · begonnen am 5. Mär 2011 · letzter Beitrag vom 5. Mär 2011
Antwort Antwort
thomas2009
(Gast)

n/a Beiträge
 
#1

Wie kann ich in guter Qualität 24Bit zu 8Bit konvertieren ?

  Alt 5. Mär 2011, 11:38
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;
...
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Wie kann ich in guter Qualität 24Bit zu 8Bit konvertieren ?

  Alt 5. Mär 2011, 11:50
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.
Markus Kinzler
  Mit Zitat antworten Zitat
thomas2009
(Gast)

n/a Beiträge
 
#3

AW: Wie kann ich in guter Qualität 24Bit zu 8Bit konvertieren ?

  Alt 5. Mär 2011, 13:00
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');

Hier ist die Funktion
  Mit Zitat antworten Zitat
Capa

Registriert seit: 26. Okt 2003
102 Beiträge
 
RAD-Studio 2010 Arc
 
#4

AW: Wie kann ich in guter Qualität 24Bit zu 8Bit konvertieren ?

  Alt 5. Mär 2011, 13:17
da das ganze eine funktion ist solltest du es vielleicht so aufrufen

Function BMPReduceTo8Bit(BitmapXXBit: TBitmap): TBitmap;

Delphi-Quellcode:
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;
Kannst auch ein 2tes Image erstellen

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;
  Mit Zitat antworten Zitat
thomas2009
(Gast)

n/a Beiträge
 
#5

AW: Wie kann ich in guter Qualität 24Bit zu 8Bit konvertieren ?

  Alt 5. Mär 2011, 14:05
Es ging. Danke
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:49 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