Delphi-PRAXiS
Seite 4 von 4   « Erste     234   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   PNG komprimieren (https://www.delphipraxis.net/198312-png-komprimieren.html)

Uwe Raabe 24. Okt 2018 12:16

AW: PNG komprimieren
 
Zitat:

Zitat von Rolf Frei (Beitrag 1416510)
pngquant.exe (https://pngquant.org/) macht ja genau das was ich will nur würde ich eben gerne dieses externe Tool eliminieren und alles in Delphi machen.

Offenbar gibt es von dem Tool auch eine embeddable library: https://github.com/ImageOptim/libimagequant

Damit kannst du das ja auch als DLL nutzen und wärst von der externen EXE weg. Eventuell lässt sich der dort verwendete C-Code ja auch leichter umsetzen - oder es findet sich jemand dafür.

TiGü 24. Okt 2018 12:18

AW: PNG komprimieren
 
Zitat:

Zitat von Rolf Frei (Beitrag 1416522)
Mit der Protierung des C# Codes habe ich Probleme, da mir der Sprache C# nicht so geläufig ist. Werde es aber mal genauer anschauen.

Man wächst mit seinen Aufgaben.
Außerdem sollte man als Softwareentwickler schon mehr als eine Programmiersprache zumindest lesen können.
C# ist aber einfach zu lesen und zu verstehen als bspw. reine C-Quelltexte, die hart alle Möglichkeiten der Zeigerschweinereien ausnutzen.

Eigentlich könntest du den Quelltext nehmen, stumpf die { } Klammern mit begin ersetzen, then zu den ifs hinzufügen, switch mit case of ersetzen und die inline Variablen im Delphi-Stil vor dem ersten Begin einer Methode definieren.
Dann ist schon ein Großteil des Quelltextes portiert und man kann sich um die Feinheiten kümmern, wo der Kompiler sagt: "Ne, so ist noch nicht rund!".

Rolf Frei 24. Okt 2018 12:34

AW: PNG komprimieren
 
Zitat:

Zitat von Uwe Raabe (Beitrag 1416526)
Zitat:

Zitat von Rolf Frei (Beitrag 1416510)
pngquant.exe (https://pngquant.org/) macht ja genau das was ich will nur würde ich eben gerne dieses externe Tool eliminieren und alles in Delphi machen.

Offenbar gibt es von dem Tool auch eine embeddable library: https://github.com/ImageOptim/libimagequant

Damit kannst du das ja auch als DLL nutzen und wärst von der externen EXE weg. Eventuell lässt sich der dort verwendete C-Code ja auch leichter umsetzen - oder es findet sich jemand dafür.

Habe da aber leider keine DLL gefunden. Habe das auch schon angeschaut aber gleich wieder aufgegeben. Der Aufwand wird mir da zu gross. Werde vorerst mal weiter mit der exe arbeiten. Schade dass es hierzu (PNG-8 Konvertierung) keinen Delphi Code zu finden gibt.

Rolf Frei 24. Okt 2018 12:44

AW: PNG komprimieren
 
Zitat:

Zitat von TiGü (Beitrag 1416528)
Zitat:

Zitat von Rolf Frei (Beitrag 1416522)
Mit der Protierung des C# Codes habe ich Probleme, da mir der Sprache C# nicht so geläufig ist. Werde es aber mal genauer anschauen.

Man wächst mit seinen Aufgaben.
Außerdem sollte man als Softwareentwickler schon mehr als eine Programmiersprache zumindest lesen können.
C# ist aber einfach zu lesen und zu verstehen als bspw. reine C-Quelltexte, die hart alle Möglichkeiten der Zeigerschweinereien ausnutzen.

Eigentlich könntest du den Quelltext nehmen, stumpf die { } Klammern mit begin ersetzen, then zu den ifs hinzufügen, switch mit case of ersetzen und die inline Variablen im Delphi-Stil vor dem ersten Begin einer Methode definieren.
Dann ist schon ein Großteil des Quelltextes portiert und man kann sich um die Feinheiten kümmern, wo der Kompiler sagt: "Ne, so ist noch nicht rund!".

Ich kann den Code schon lesen, nur gibt es halt da viele Sachen, die mir nicht geläufig sind und bei denen ich dann viel Zeit verbrate um herauszufinden, wie man das in Delphi umsetzt und wie ich das dann noch mit TPNGImage in Einklang bringe. Der Aufwand ist es mir nicht wert und dann beleibe ich lieber vorerst mal bei der externen exe.


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:59 Uhr.
Seite 4 von 4   « Erste     234   

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