Andreas Korthaus: Bild beschneiden, Image::Magick ist zu langsam

Beitrag lesen

Hallo!

ich möche aus einer relativ großen (4500 x 3000 Pixel) jpg Datei ein 800 x 600 Pixel Stück an variable Stelle herausschneiden und im Browser anzeigen.

Ich könnte mir wie struppi vorstellen, dass es evtl. vorteilhaft sein könnte, die Binaries zu verwenden.

Dann könntest Du das große JPEG einmalig in eine MPC-Datei umwandeln, das Format in welchem ImageMagick Bilder im Speicher vorhält. So entfällt schonmal die Konvertierung des großen JPEGs bei jedem Aufruf. Nach Möglichkeit sollte das Bild im RAM liegen.

Nach  meinen bescheidenen jpg Kenntnissen werden diese doch in (8x8 Pixel ?) Blöcken gespeichert. Wenn man die Beschneidung nur an diesen Blockgrenzen zuläßt (würde für meine Zwecke reichen) sollte man die Beschneidung doch eigentlich direkt auf den (Datei-) Daten vornehmen können, die Daten also nicht erst in ein "Bild" umwandeln müssen (wies Image::Magick evtl. macht).

Ich weiß nicht wie JPEG genau funktioniert, würde mich allerdings wundern wenn ImageMagick die Bilder nicht erst in sein eigenes Bildformat konvertiert. Ich kann mir das mit den 8x8 Blöcken allerdings nicht vorstellen, weil es IMHO einer effizienten Komprimierung extrem im Wege stehen würde.

Je größer die Schritte sind, die Du zwischen den Bildern verwenden kannst, desto eher könntest Du Ausgabe-Bilder cachen. Wenn Du z.B. 20 Pixel-Abstände verwenden kannst, könntest Du das große Bild in entsprechende 20x20 Pixel-Blöcke teilen, und immer nur die benötigten Blöcke laden (z.B. in eine HTML-Tabelle), oder noch besser (aber speicherintensiver) wäre alle möglichen Ausschnitte komplett zu cachen, was natürlich keinen Sinn macht wenn Du den Ausschnitt in extrem kleinen Schritten verschieben können willst.

Grüße
Andreas

--
SELFHTML Tipps & Tricks: http://aktuell.de.selfhtml.org/tippstricks/