Я надеюсь создавать миниатюры, который имеет размер 100 пкс на 100 пкс. я видел, что много статей объясняют методы, но большинство заканчивает тем, что имело ширину! =height, если отношение размера должно быть сохранено.
например, у меня есть изображение 450 пкс на 350 пкс. я хотел бы обрезать к 100 пкс на 100 пкс, если бы я должен был сохранить отношение, то я закончил бы тем, что имел 100 пкс на 77 пкс. это делает это ужасным, когда я перечисляю эти изображения подряд и столбец. однако, изображение без отношения размера будет выглядеть ужасным также.
я видел изображения от flickr, и они выглядят фантастическими. например:
миниатюра: http://farm1.static.flickr.com/23/32608803_29470dfeeb_s.jpg
средний размер: http://farm1.static.flickr.com/23/32608803_29470dfeeb.jpg
большой размер: http://farm1.static.flickr.com/23/32608803_29470dfeeb_b.jpg
спасибо
Для этого в качестве эскиза используется только часть изображения с соотношением сторон 1: 1 (в основном центр изображения). Если вы присмотритесь, то увидите это на миниатюре flickr.
Поскольку в вашем вопросе есть слово «кадрирование», я не уверен, что вы этого еще не знали, но что вы хотите знать тогда?
Вот пример использования кадрирования:
//Your Image
$imgSrc = "image.jpg";
//getting the image dimensions
list($width, $height) = getimagesize($imgSrc);
//saving the image into memory (for manipulation with GD Library)
$myImage = imagecreatefromjpeg($imgSrc);
// calculating the part of the image to use for 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);
Мне нравится использовать GDLib для работы с изображениями, с ним фантастически легко работать. Есть много статей в блогах и учебников. Однако я бы рекомендовал использовать для этого класс или что-то подобное, поскольку забота обо всех вариациях изображения может отнять много времени.