Suche einfache Library zum Laden von (beliebigen) Bilddateien

  • Imagemagick geht mir gehörig auf die Nüsse. Spätestens mit ihrem "ImageMagick 7" Update schießen die endgültig den Vogel ab. Schon bisher war ImageMagick nicht ABI-kompatibel und erforderte immer eine Neukompilierung nach jedem Update. Aber mit Version 7 werfen die einfach mal alles über den Haufen und einige der neuen Schnittstellen funktionieren nicht mal.


    Mir geht es konkret um dieses Issue das ich gerne lösen möchte: https://github.com/M-Reimer/graphlcd-base/issues/3

    Und ich bin da jetzt schon mehrere Tage drüber am Brüten aber bekomme es einfach nicht hin ImageMagick 7 mit graphlcd-base zu verheiraten.


    Und weil ich aus ImageMagick eigentlich nur die Funktion "Lese Bild und gib mir die Pixel" nutze, frage ich mich ob es da nicht was leichtgewichtigeres gibt. Also sowas wie einen Layer über den gängigen Verdächtigen wie "libpng", "libjpeg", ... die ja auch wieder alle andere Interfaces haben (hatte schon mit libjpeg zu tun und die ist gruselig). Kennt da wer was?

  • Hast du dir https://freeimage.sourceforge.io/fip/index.html schon mal angesehen?

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Euch beiden vielen Dank für die Tipps.


    "Freeimage" habe ich mal genauer angeschaut, aber das letzte Update war 2018. Das ist erstmal nicht falsch (kann ja sein, dass die Library mittlerweile einfach stabil ist). Die Patchliste bei Arch sagt aber eher aus das die Library Bugs hat die gefixt werden sollten: https://github.com/archlinux/s…/packages/freeimage/trunk


    GraphicsMagick ist im Prinzip in graphlcd-base schon drin. Ich würde die also drin lassen und parallel ImageMagick 6 Support drin lassen (Version 6 wird wohl noch 10 Jahre gepflegt).


    Mir ist jetzt noch das aufgefallen: https://github.com/M-Reimer/gr…hics/extformats.c#L26-L28

    Die ursprünglichen Maintainer haben also imlib2 zumindest mal in die engere Wahl genommen.


    Meinungen zur imlib2?

  • Hab mir imlib2 angeschaut und die hat zwei Probleme:


    Ich hab dann mal ein bisschen geschaut wie PHP das hinbekommt. Die haben ImageMagick-Support über eine recht breite Versionsspanne. Die nehmen kein "Magick++" sondern "MagickWand". Auf dem ersten Blick scheint "MagickWand" auch noch komplett zu sein. Funktionen zum Lesen von Farbkanälen wurden hier nicht einfach ersatzlos gelöscht. Vermutlich weil hier mit PHP ein sehr großer Nutzer dahinter steht und die vielleicht auch einen Blick auf Änderungen haben. Möglicherweise ist Magick++ eher eine Nieschen-Schnittstelle weil sich da noch keiner beschwert hat über fehlende Funktionen und auch mein Issue kaum beachtet wird.


    Ich werde mir jetzt mal dieses MagickWand genauer anschauen und graphlcd-base möglicherweise darauf umstellen.

  • So. Ist erstmal experimentell drin. Wäre schön wenn jemand vorher testen könnte bevor ich eine Version tagge.


    https://github.com/M-Reimer/graphlcd-base


    Auf "MagickWand" umstellen ist tatsächlich eine Option. Dann sind es nur ein paar Funktionen die ohne sinnigen Grund einen neuen Namen bekommen haben. Außerdem gibt MagickWand, wenn man es passend nutzt, direkt das Binärformat zurück das graphlcd-base intern benötigt.