[gelöst] Kommandozeilenprogramm zur Reduzierung der Farbtiefe bei Windows-Bitmaps

Rund um die LCL und andere Komponenten
kirchfritz
Beiträge: 128
Registriert: Mo 3. Jan 2011, 13:34
OS, Lazarus, FPC: Win10 (L 2.2.2 FPC 3.2.2)
CPU-Target: 64Bit
Wohnort: Nürnberg

Re: Kommandozeilenprogramm zur Reduzierung der Farbtiefe bei Windows-Bitmaps

Beitrag von kirchfritz »

Das Beispiel funktioniert, produziert allerdings "Run Length Encoding" - Komprimierung
Ich bin mir noch nicht sicher, ob diese Komprimierung von SAP-Importing-Routinen akzeptiert wird.

Ansonsten habe ich nicht verstanden, wozu OPBitmaps gut sind, und wenn ich mir den OPBitmap Quellcode anschaue, verstehe ich erst recht Bahnhof.
Das Beispielprogramm ist natürlich sehr einfach verständlich gehalten, das ist nicht das Problem.
Aber, wenn ich zum Beispiel die Komprimierung abschalten möchte, sehe ich keine Möglichkeit, dies selbst zu bewerkstelligen.

Kurz gesagt: OPBitmaps scheinen die Aufgabe "Reduzierte Farbtiefe bei Windows-Bitmaps" zu lösen, ist aber irgendwie mit Kanonen nach Spatzen geschossen.
Als Freund einfacher Lösungen bin ich noch nicht endgültig überzeugt.

Benutzeravatar
theo
Beiträge: 9580
Registriert: Mo 11. Sep 2006, 19:01

Re: Kommandozeilenprogramm zur Reduzierung der Farbtiefe bei Windows-Bitmaps

Beitrag von theo »

kirchfritz hat geschrieben:
Do 17. Nov 2022, 11:38
Aber, wenn ich zum Beispiel die Komprimierung abschalten möchte, sehe ich keine Möglichkeit, dies selbst zu bewerkstelligen.
Steht doch in dem Code in Button1Click:

Code: Alles auswählen

  Enc.RLECompress:=true;   
Dann mach's halt false.
Wirklich so schwierig? :wink:

kirchfritz
Beiträge: 128
Registriert: Mo 3. Jan 2011, 13:34
OS, Lazarus, FPC: Win10 (L 2.2.2 FPC 3.2.2)
CPU-Target: 64Bit
Wohnort: Nürnberg

Re: Kommandozeilenprogramm zur Reduzierung der Farbtiefe bei Windows-Bitmaps

Beitrag von kirchfritz »

Ups, das habe ich wohl übersehen. Danke für den Hinweis.

Benutzeravatar
Winni
Beiträge: 1423
Registriert: Mo 2. Mär 2009, 16:45
OS, Lazarus, FPC: Laz2.2.2, fpc 3.2.2
CPU-Target: 64Bit
Wohnort: Fast Dänemark

Re: Kommandozeilenprogramm zur Reduzierung der Farbtiefe bei Windows-Bitmaps

Beitrag von Winni »

Hi!

RLE = Run Length Encoding ist doch Informatik für Anfänger. Das dürfte doch selbst SAP schaffen.

Betr. der BMP mit Palette und 256 Farben via BGRAbitmap hab ich ne Anfrage im Internationalen Forum laufen. Vielleicht gibt's von da ne Antwort.

Winni

Benutzeravatar
theo
Beiträge: 9580
Registriert: Mo 11. Sep 2006, 19:01

Re: Kommandozeilenprogramm zur Reduzierung der Farbtiefe bei Windows-Bitmaps

Beitrag von theo »

Winni hat geschrieben:
Do 17. Nov 2022, 15:50
Betr. der BMP mit Palette und 256 Farben via BGRAbitmap hab ich ne Anfrage im Internationalen Forum laufen. Vielleicht gibt's von da ne Antwort.
Könntest du den Link hier posten?

Ich verstehe allerdings nicht, wozu das noch gut sein soll.
Kirchfritz wollte bei "Windows-Bitmapdateien die Farbtiefe von 24 Bit auf 8 Bit zu reduzieren" in einem Kommandozeilenprogramm.
Dafür habe ich ihm einen fertigen Pascal-Code geliefert, welcher ohne spezielle Abhängigkeiten auskommt.
Es sind 3 Units. Wer das "mit Kanonen nach Spatzen geschossen" findet, hat die Problematik nicht verstanden. :wink:

Wenn Kirchfritz noch andere Pläne hat, soll er sie mitteilen, aber dieses "Ticket" ist eigentlich geschlossen. :lol:

Benutzeravatar
Winni
Beiträge: 1423
Registriert: Mo 2. Mär 2009, 16:45
OS, Lazarus, FPC: Laz2.2.2, fpc 3.2.2
CPU-Target: 64Bit
Wohnort: Fast Dänemark

Re: Kommandozeilenprogramm zur Reduzierung der Farbtiefe bei Windows-Bitmaps

Beitrag von Winni »

Hi!

Hier ist der Link im Internationalen Forum betr. BGRAbitmap. Der enthält auch gleich die Lösung

https://forum.lazarus.freepascal.org/in ... 252.0.html

Jetzt kam auch die Erinnerumng zurück:

Man muss die Bitmap erstmal über den Dither-Algoritmus quantisieren.
Umständlich, aber trotzdem kurzer Code.

Winni


PS.: Nun kann der Thread als zweimal beantwortet geschlossen werden.

Benutzeravatar
theo
Beiträge: 9580
Registriert: Mo 11. Sep 2006, 19:01

Re: Kommandozeilenprogramm zur Reduzierung der Farbtiefe bei Windows-Bitmaps

Beitrag von theo »

Winni hat geschrieben:
Do 17. Nov 2022, 17:33
Man muss die Bitmap erstmal über den Dither-Algoritmus quantisieren.
Umständlich, aber trotzdem kurzer Code.
Ja, geht auch. Das wusste ich nicht.
Einfacher ist es aber mMn nicht.
Ausserdem dauert die Umwandlung mehr doppelt so lange wie die OpBitmap Variante und hat leicht Artefakte in meinem Testbild (gelbe Striche in den Wolken: Zweites Bild).
Ist aber wohl am Ende Geschmackssache.
Dateianhänge
beinwil_op.bmp
beinwil_op.bmp (594.15 KiB) 112 mal betrachtet
beinwil_bgra.bmp
beinwil_bgra.bmp (767.02 KiB) 112 mal betrachtet

Benutzeravatar
Winni
Beiträge: 1423
Registriert: Mo 2. Mär 2009, 16:45
OS, Lazarus, FPC: Laz2.2.2, fpc 3.2.2
CPU-Target: 64Bit
Wohnort: Fast Dänemark

Re: Kommandozeilenprogramm zur Reduzierung der Farbtiefe bei Windows-Bitmaps

Beitrag von Winni »

theo hat geschrieben:
Do 17. Nov 2022, 18:20
und hat leicht Artefakte in meinem Testbild (gelbe Striche in den Wolken: Zweites Bild).
Ist aber wohl am Ende Geschmackssache.
Hi!

Und nun liebe Kinder kommen wir zu der Debatte von Anfang der 90er:

"Was ist der beste Algorithmus eine Palette für eine 256-Color-Bitmap zu erstellen"

Theo, lass uns unsere Zeit mit was Sinnvollem verbringen.
Außer Kirchfritz und SAP braucht das sowieso keiner mehr.
Das kommt aus einer Zeit in der Festplattenplatz und RAM rar und teuer waren.

Grüße
Winni

circular
Beiträge: 3
Registriert: Sa 29. Jan 2022, 12:47

Re: Kommandozeilenprogramm zur Reduzierung der Farbtiefe bei Windows-Bitmaps

Beitrag von circular »

Hallo,

Ja es gibt ein leicht Artefakt. Ich habe dieses Problem schon gesehen aber bin ich nicht sicher wie es zu vermeiden. Wie ich verstehe es, ist daß die Farbeunterschied summiert sich weil die Palette ist nicht regelmäßig.

Grüße

kirchfritz
Beiträge: 128
Registriert: Mo 3. Jan 2011, 13:34
OS, Lazarus, FPC: Win10 (L 2.2.2 FPC 3.2.2)
CPU-Target: 64Bit
Wohnort: Nürnberg

[gelöst]Kommandozeilenprogramm zur Reduzierung der Farbtiefe bei Windows-Bitmaps

Beitrag von kirchfritz »

Danke an alle.
Für mich ist die Fragestellung ausreichend beantwortet.
Für weiteren Diskussionsbedarf solltet ihr [Winni, circular und theo] einen eigenen Beitrag benutzen.
Danke nochmal für alles.
Ich bin dann mal raus.....

Fritz Kirch

Antworten