S
S
Sergey Semenko2014-10-20 19:11:28
PHP
Sergey Semenko, 2014-10-20 19:11:28

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);

UPD.
I have not tested with a square image yet, probably needs to be finalized.

Answer the question

In order to leave comments, you need to log in

1 answer(s)
S
Sergej, 2014-10-20
@abler98

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 question

Ask a Question

731 491 924 answers to any question