PHP Verschiedene Systeme, unterschiedlich große Dateien nach Imageresize mit wordpress

coolmodi

Lt. Commander
Registriert
Apr. 2012
Beiträge
1.957
Hey, hab auch mal ein "Problem".

Und zwar hab ich hier ein Bild, einmal als PNG (2MB) und einmal davon ein Jpeg (800KB). Die beiden lade ich jetzt mit meiner Upload Funktion hoch, dabei wird unter anderem alles was nicht Jpeg ist zu Jpeg konvertiert, dann halt das Wordpresszeug mit verschiedenen Auflösungen.

Lokal kommen dann 2x fast die gleichen Größen bei raus, z.B. hat die 150x150 Version in beiden Fällen 5KB.
Das Problem: Auf dem Server kommt bei der als Jpeg hochgeladenen Datei 18KB raus, PNG wird weiterhin zu einem 5KB Jpeg.

Woran könnte das liegen? Selbst wenn ich die Jpeg quali in WP auf 50 setze ist das Bild noch größer, Qualität natürlich schlechter.

Meine Lösung aktuell ist einfach zusätzlich zu PNG, Gif und BMP auch Jpegs nochmal in Jpeg "umzuwandeln":

PHP:
if (($imginfo[2] == IMAGETYPE_PNG || $imginfo[2] == IMAGETYPE_GIF || $imginfo[2] == IMAGETYPE_BMP) && !current_user_can("manage_options")) {
            $imagestr = imagecreatefromstring(file_get_contents($file["tmp_name"]));
            imagejpeg($imagestr, $file["tmp_name"], 80);
            $file["type"] = "image/jpeg";
        } elseif ($imginfo[2] == IMAGETYPE_JPEG) { // das hier halt extra, rest war schon vorher da
            $imagestr = imagecreatefromstring(file_get_contents($file["tmp_name"]));
            imagejpeg($imagestr, $file["tmp_name"], 80);
            $file["type"] = "image/jpeg";
        }

Da kommen dann wie zu erwarten wieder 2x die gleichen Dateigrößen bei raus, ursprüngliche Jpegs sind natürlich nochmal etwas schlechter als Lokal ohne die Extraumwandlung, obwohl die Größen dort auch ohne gleich sind.
 
Nimm mal das
PHP:
&& !current_user_can("manage_options")
raus.
 
racer320kmh schrieb:
Nimm mal das
PHP:
&& !current_user_can("manage_options")
raus.
Das sorgt nur dafür, dass Admins im ACP (bzw. überall) nicht auf Jpegs beschränkt sind. Falls es unklar war: Es kommt jeweils eine Jpeg Datei raus, keine PNG! Das hätte ich schon selber gemerkt ;)

Madman1209 schrieb:
gleiche PHP Version? Code ist auch wirklich identisch?
Ja, beides PHP 7.0, Code ist 1:1 identisch, ist einfach eine komplette Kopie des Projektordners.

Daher kann ich mir das ja nicht erklären, denn außer Code und PHP Version sollte doch nichts darauf einfluss haben.

Edit: Und ich könnte mit der Extraumwandlung leben (kann immerhin auch beschädigte Shrottbilder retten), mich stört ja eigentlich nur, dass ich keine Ahnung habe woher der Unterschied kommt :D

Edit: Ich habs jetzt noch auf nem anderen Server versucht, gleiches Ergebnis. Lokal ist halt Win und Server sind Linux, aber kp wie das daran liegen könnte :/
 
Zuletzt bearbeitet:
Wegen 13 KB Unterschied? Wenn es bei großen Bildern auch so geringe Differenzen sind, kannst du das doch vernachlässigen.
 
Nicht wirklich, im Extremfall hat die Startseite dann 0.5MB mehr an Daten, bei manchen Bildern ist der Unterschied noch extremer als in obigem Beispiel, z.B. bei dem hier https://de.wikipedia.org/wiki/Uhr#/media/File:Eisenuhr_USK.jpg war der Unterschied beim 220x165 Thumb 10KB zu 50KB. Bei höheren Auflösungen nimmt der Unterschied dann relativ gesehen deutlich ab.

Selbst bei 13KB Unterschied pro Bild kommt einiges zusammen.
 
Zurück
Oben