Die Funktion imagecopyresampled nützlich ist ein Miniaturbild zu erzeugen oder die Größe von Bildern, während Seitenverhältnis zu halten:Wählen PHP Ändern der Bildgröße Algorithmus
$fn = $_FILES['data']['tmp_name'];
$size = getimagesize($fn);
$width = $size[0];
$height = $size[1];
$ratio = $width/$height;
if ($ratio > 1 && $size[0] > 500) { $width = 500; $height = 500/$ratio; }
else { if ($ratio <= 1 && $size[1] > 500) { $width = 500 * $ratio; $height = 500; }}
$src = imagecreatefromstring(file_get_contents($fn));
$dst = imagecreatetruecolor($width, $height);
imagecopyresampled($dst, $src, 0, 0, 0, 0, $width, $height, $size[0], $size[1]);
imagedestroy($src);
imagejpeg($dst, 'test.jpg');
imagedestroy($dst);
Wie kann ich die Größe neu bestimmen Algorithmus von PHP wählen?
Hinweis: wie angegeben in this question, Einstellung imagesetinterpolation($dst, IMG_BILINEAR_FIXED);
oder solche Dinge scheint nicht zu funktionieren.
Nach Tests, die ich (in einer anderen Sprache) tat, „bilinear Redimensionierung“ gibt manchmal besseres Ergebnis als bikubische, und manchmal ist es das Gegenteil (abhängig, ob es oder upsizing Downsizing).
Wie bereits erwähnt (http://php.net/manual/fr/function.imagecopyresampled.php#54448) von jemandem: "Es sollte beachtet werden, dass die Funktion imagecopyresampled() viel unschärfer ist als Photoshop CS bikubische Standardfunktion. Sieht ähnlich aus wie eine blury Version der bilinearen Funktion von Photoshop. In der Dokumentation wird nicht notiert, welcher Algorithmus beim Resampling verwendet wird. " – Basj
Es sieht so aus, als ob es nicht auf imagecopyresampled angewendet wird - ich werde es als falsch löschen, während ich versuche, es auszuarbeiten. Es tut uns leid. –
Wie gesagt [in dieser Frage] (http://stackoverflow.com/q/41729409/1422096), die Einstellung 'imagesetinterpolation ($ dst, IMG_BILINEAR_FIXED);' oder solche Dinge scheinen nicht zu funktionieren. – Basj