Die zwei Grundpfeiler der ganzen Geschichte sind zum einen die JavaScript-Bibliothek cropper und zum anderen der Befehl
imagecopyresampledder PHP-GD-Bibliothek.
Die PHP-API-Dokumentation ist für mich eigentlich das Top-Beispiel, wie eine Dokumentation aussehen müsste. Allerdings sind bei mir wohl durch die Beschreibung des Befehles
imagecopyresampledein mehr an grauen Haaren hinzugekommen. Da waren auch die zahlreichen Codeschnipsel im unteren Teil der Seite keine Hilfe, bei denen immer gleich noch skaliert wurde.
Mein "Missverständnis" mit imagecopyresampled
php.net sagt:src_image Resource des Quellbildes.
dst_x x-Koordinate Ziel
dst_y y-Koordinate Ziel
src_x x-Koordinate Quelle
src_y y-Koordinate Quelle
dst_w Breite Ziel
dst_h Höhe Ziel
src_w Breite der Quelle
src_h Höhe der Quelle
Habe ich nun ein Bild 900x500px, von dem ich sagen wir mal nur die rechte Hälfte haben möchte, würde ich davon ausgehen, dass folgende Parameter korrekt wären:
Dies ist allerdings nicht der Fall: Das Ergebnis war immer ein verzerrtes Bild.
Überhaupt nicht hilfreich bei der Suche nach den korrekten Parametern war der Umstand, dass mir cropper nicht die Position und Größe der Cropbox in Relation zur eigentlichen Bildgröße, sondern in Relation zur Bildgröße auf der Website (wo das Bild leicht skaliert war) geliefert hatte. Aber das ist eine andere Geschichte.
Lösung des Rätsels war, als Werte für Breite und Höhe sowohl bei Ziel wie auch bei Quelle dieselben Ziel-Werte einzusetzen:
(Also vorletzter Wert ebenfalls 450 statt 900)Erstellt am: 29.08.2017 | .Kommentieren |