TinyIMG - Bild wird in der Höhe abgeschnitten, wenn das Seitenverhältnis nicht zu den Werten "passt"

  • Moin,


    beim Testen ist mir aufgefallen das je nach Seitenverhältnis das Bild beschnitten wird und der fehlende Teil mit weiß aufgefüllt wird.


    Es ist z.B. eingestellt 1600 x 1200 - Verhältnis 4:3 für normale Kompaktkameras - lade ich jetzt ein Bild aus meiner Spiegelreflex im Verhältnis 3:2 hoch. Wird das Bild nicht auf 1600 x 1066 verkleinert, um das Seitenverhältnis beizubehalten. Das Bild wird auf 1600 x 1200 verkleinert und im unteren Bereich werden ca. 270 Pixel mit Weiß aufgefüllt, ins eigentliche Bild rein:



    Wenn ich die Maximale Höhe in den Einstellungen verringere, wird der weiße Balken kleiner und es wird etwas weniger abgeschnitten:



    So sollte es eigentlich aussehen:




    Ich kann zwar die Größen jetzt "passend" zu diesen Bildern einstellen, nur bei anderen Seitenverhältnissen habe ich das Problem dann wieder, z.B. bei erstellen Screenshots.


    Danke und Gruß Christian

  • Die unten abgeschnittenen Bilder deuten auf korrupte Bilder hin bei denen nur ein Teil des Bildinhalts an den client übertragen werden konnte.
    Der Browser versucht dann anhand des headers des jpg files das beste rauszuholen (unter anderem eben fehlende Informationen mit weiß zu ersetzen).
    In NGINX könnte das mit der Einstellung client_max_body_size zusammenhängen.

  • Am NGINX liegt es nicht, habe zum testen auf Apache umgestellt. Um nicht durch den NGINX andere Fehler zu erhalten.


    Wenn ich das Plugin abschalte und die Bilder hochlade, sind diese Bilder alle i.O. und keines ist abgeschnitten? Egal ob 200KB oder 7MB klein / groß?


    Mit TinyIMG aktiviert hochgeladen:



    Mit TinyIMG deaktiviert hochgeladen:




    Ist ein bearbeitetes Bild mit ca. 350KB.


    Ich habe jetzt ein Bild genommen und es nur in der Komprimierung verändert. An der Dateigröße liegt es auch nicht, von der Dateigröße wurde das kleinste Versuchsbild mit 215KB abgeschnitten. Die nächstgrößeren mit 235KB und 252KB sind einwandfrei.


    Pixelgröße ist jeweils 2200 x 1467.


    Habt ihr noch eine Idee?

  • Nachtrag:
    Zum testen habe ich jetzt noch folgendes gemacht, ein Bild das abgeschnitten wurde, im Windows Explorer mehrfach kopiert.


    Test 1 - Dateigröße ca. 250KB
    7 Bilderkopien (nur anderer Name) in 4 Beiträgen hochgeladen, diese 28 Bilder sind immer exakt an der gleichen Stelle abgeschnitten.


    Test 2 - Dateigröße ca. 260KB - gleiches Bild wie oben, nur andere JPG Komprimierung
    9 Bilderkopien (nur anderer Name) in 4 Beiträgen hochgeladen, alle 36 sind i.O. keines ist abgeschnitten.


    Test 3 - Mischupload 250 und 260KB je 5 Stück
    250KB ist 5x beschnitten - 260KB ist 5x vollständig.

  • Entferne mal spaßeshalber den API-Key für TinyIMG sodass nur die skalierung greift.
    Dann lass das bild entsprechend verkleinern und schau ob es dann auch abgeschnitten ist.
    zudem wäre es gut wenn du mal ein kaputt komprimiertes Bild vor und nach dem upload speichern und hier anhängen könntest (unbedingt als zip archiv und nicht als Bild, sonst greift bei uns die komprimierung^^), sammt der ACP-Einstellungen die du nutzt.
    Eventuell kann ich so das Problem eingrenzen.

  • TinyPNG - Tinify-API nutze ich nicht. Da es bei uns monatliche Kosten von ca. 100€ verursachen würde. Ein API Key ist deswegen nicht hinterlegt. Habe mich jetzt mal registriert und werde es sobald der Key da ist, mal mit aktiviertem TinyPNG probieren.


    Die Bilder habe ich angehängt.
    Testbilder.zip


    Habe noch etwas weiter probiert, je stärker das Original Bild vor dem Upload komprimiert wurde, umso größer ist der Bildbeschnitt.


    250KB


    190KB


    140KB

  • Nein, keine Fehler, ist alles leer.


    Mit API Key werden alle Bilder beschnitten, egal welche Dateigröße. Beschnitt ist unterschiedlich hoch. Aber gleiches Muster, je kleiner die Dateigröße umso größer der Beschnitt.

    Einmal editiert, zuletzt von rockcrawler ()

  • Nachtrag.
    Ich muss ja noch einen Haken mehr setzen, damit TInyPNG auch genutzt wird. Der Beitrag vorher stimmt nicht.


    Mit TinyPNG werden keine Bilder beschnitten. Sind alle i.O. mehrfach probiert.


    Was mir noch aufgefallen ist. Die Dateigröße bei den beschnittenen Bildern ist immer gleich groß zur Originaldatei. Nur bei dem 270KB was unbeschnitten ist, hat sich die Dateigröße verändert (ist kleiner geworden)?


    Liegt das vielleicht daran? Bricht das Plugin vielleicht bei gleicher Dateigröße im Verkleinerungsprozess ab?


    Gerade bei schon komprimierten Bildern, werden nochmals komprimierte Bilder ja größer wie das Original?

  • Also ich hab ne vermutung woran es liegen könnte, kann ich mir aber erst Sonntag genauer anschauen:
    Die Bilder sind unvollständig (das hatte ich ja bereits angemerkt), allerdings vermute ich, dass die Bilder auf deinem Server vollständig vorliegen und nur unvollständig ausgeliefert werden.
    Zur Erklärung: Die skalierten Bilder sind am ende größer als die original hochgeladenen, da diese nur die standart komprimierung verwenden.
    Nun scheint es mir so, als wäre die update Routine die sich drum kümmern müsste die neue Dateigröße zu aktualisieren in diesem Falle fehlerhaft...
    Darum wird auch der fehlerhafte Bereich mit der besseren Komprimierung größer :(
    Wenn Sascha nen FTP-Zugang hat soll er mal nen Bild direkt aus dem attachments ordner laden und dessen Dateigröße mit jener in der DB hinterlegten vergleichen, da müsste es nach meiner Theorie Diskrepanzen geben.

  • Ja du hast Recht. Die Bilddatei ist korrekt und unbeschnitten auf dem Server hinterlegt. Angezeigt wird im Browser die beschnittene Version.


    Die Dateigröße auf dem Server ist 218KB, das beschnittene Bild hat runtergeladen nur 141KB, wie das Originalbild vor dem Upload.


    Bei Filesize im Datenbank Eintrag zu diesem Attachement Bild steht 144685 = 141KB.


    Ist das der gesuchte Eintrag?


    Dieser Wert zeigt bei den von mir kontrollierten Bildern immer die Originalbild Dateigröße an. Auch bei den Bildern, die nicht beschnitten wurden.


    Bei den Bildern mit aktivierter TinyPNG Schnittstelle, steht der tatsächliche Wert der Dateigröße in der Datenbank.

  • Muss gestehen, dass mir das auch schon in den Sinn kam und habe sich bereits begonnen, das zu debuggen. Zumal ich glaube, dass das ein "Feature" in der WSC-Version ist.


    Kannst du bitte in der Datei /lib/system/upload/TinifyUploadFileSaveStrategy.class.php suchen nach if ($requireUpdate && ($imageData = @getimagesize($object->getLocation())) !== false) { und darunter einfügen: clearstatcache();


    Danach probier's bitte noch einmal.

  • Ich teste heute Abend noch etwas, den Eintrag habe ich hinzugefügt. Es scheint als wenn jetzt jetzt funktioniert. Habe jetzt nur 3 Beiträge erstellt mit diversen Bildern.


    Es ist kein Beschnitt / fehlerhaftes Bild nach neuem Upload zu sehen. Auch scheint dieses Problem damit behoben zu sein: TinyIMG - Kein Bild bei NGINX - EDIT: auch bei Apache


    Fahre jetzt gleich mit den Kindern in den Freizeitpark. Je nachdem wie Fit ich bin und wie es zeitlich aussieht, teste ich heute Abend noch etwas.