Answer the question
In order to leave comments, you need to log in
I'm trying to preview an image. Can you help?
Here's what happened, but I think that you can somehow make it shorter and faster. If anything, I want to make a square thumbnail of the image
<?php
# Необходимая длина квадрата
$required_size = 64;
# Пути к исходному изображения
$src = 'root.jpg';
# Размеры исходного изображения
list($width, $height) = getimagesize($src);
# Определяем длину
$size = $width > $height ? $height : $width;
# Исходное изображение
$source = imagecreatefromjpeg($src);
# Пустое изображение с черным фоном
$image = imagecreatetruecolor($required_size, $required_size);
# Начальная точки для обрезки
$x = $width > $height ? (($width - $size) / 2) : 0;
$y = $height > $width ? (($height - $size) / 2) : 0;
# Обрезаем изображение
$crop = imagecrop($source, array('x' => $x, 'y' => $y, 'width' => $size, 'height' => $size));
# Уменьшаем до нужных размеров
imagecopyresampled($image, $crop, 0, 0, 0, 0, $required_size, $required_size, $size, $size);
# Указываем заголовок
header('Content-Type: image/png');
# Выводим изображение
imagepng($image);
# Очищаем память
imagedestroy($source);
imagedestroy($image);
imagedestroy($crop);
Answer the question
In order to leave comments, you need to log in
Why be so perverted? Use imagick
How to work with imagick
Well, habr of course.
habrahabr.ru/post/43511
Small example
// $target path (полный путь до файла)
$t = new \Imagick($target);
// нужный размер
$t->ThumbnailImage(90, 90, true);
// Формат
$t->setFormat("jpg");
$t->writeImage("Куда сохранить /var/www/domen.tdl/public...");
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question