У меня есть куча изображений предварительного просмотра продукта, но они не совпадают .
Так что, интересно, можно ли кадрировать изображение на ходу, не сохраняя его?
Эти две ссылки должны показать, что я имею в виду:
http://xn--nstvedhandel-6cb.dk/alpha_1/?side=vis_annonce&id=12
http://xn--nstvedhandel-6cb.dk/alpha_1/?side=vis_annonce&id=13
Да, возможно, вот как я это делаю:
//Your Image $imgSrc = "image.jpg"; list($width, $height) = getimagesize($imgSrc); $myImage = imagecreatefromjpeg($imgSrc); // calculating the part of the image thumbnail if ($width > $height) { $y = 0; $x = ($width - $height) / 2; $smallestSide = $height; } else { $x = 0; $y = ($height - $width) / 2; $smallestSide = $width; } // copying the part into thumbnail $thumbSize = 100; $thumb = imagecreatetruecolor($thumbSize, $thumbSize); imagecopyresampled($thumb, $myImage, 0, 0, $x, $y, $thumbSize, $thumbSize, $smallestSide, $smallestSide); //final output header('Content-type: image/jpeg'); imagejpeg($thumb);
Это не операция с верным светом, как и другие, я также рекомендую вам сохранить эскиз после его создания в вашей файловой системе.
Возможно, вы захотите проверить библиотеку GD в PHP .
Вы можете попробовать этот простой скрипт: https://github.com/wes/phpimageresize
Он также позволяет кэшировать, что должно помочь в решении проблем производительности.
Но я также предпочитаю изменять размеры изображений и сохранять их в виде эскизов.
Это, безусловно, возможно, но то, что вы хотите сделать, вероятно, не очень хорошая идея. Вот почему.
Если вы обрезаете изображение, сохраните его, вам (или, вернее, вашему серверу) больше не нужно делать это. Это не легкая операция.
Тем не менее, если вы продолжаете обрезать «на лету», вашему серверу придется выполнять эту работу каждый раз – это довольно неэффективно.
В худшем случае, почему бы не автоматически обрезать их один раз до требуемых размеров (вместо того, чтобы делать это вручную) и просто сохранить эти результаты?
И, наконец, учитывая, что это магазин, не будет ли вручную обрезать их, дайте вашим продуктам наилучшие изображения – и, следовательно, лучший шанс их продать?