Изменение размера изображения с помощью пакета Imagine
У меня есть следующий код:
$imagine = new \Imagine\Gd\Imagine();
$image = $imagine->open($src);
$image_size = $image->getSize();
$image_height = $image_size->getHeight();
$image_width = $image_size->getWidth();
$ratio = 1;
$resized_image = $image;
$ratio = $image_width / $desired_width;
$this->resizedHeight = $image_height / $ratio;
$this->resizedWidth = $image_width / $ratio;
// thumbnailDir doesn t exist
if(!is_dir(dirname($des)))
mkdir(dirname($des), 0777, true);
$resized_image = $image->resize(new Box($this->resizedWidth, $this->resizedHeight));
$options = array(
'resolution-units' => ImageInterface::RESOLUTION_PIXELSPERINCH,
'resolution-x' => 500,
'resolution-y' => 500,
'flatten' => false
);
$resized_image->save($des, $options);
По какой-то причине измененное изображение всегда немного размыто, вы можете увидеть измененное изображение здесь, а оригинальное изображение здесь и вот изображение с измененным размером. У меня заканчиваются идеи, почему это так. Есть идеи почему?
2 ответа
Когда вы измените размер изображения, оно станет размытым, вы ничего не сможете сделать.
Сделайте копию оригинального изображения, используйте его для отображения.
ИЛИ ЖЕ
Найдите другой код для изменения размера.
У меня был большой опыт использования Imagemagick, и это чрезвычайно мощная утилита для редактирования графики в командной строке. Я уверен, что у них есть варианты изменения размера, которые сохранят качество в такте. Большинство онлайн-хостингов предоставляют его бесплатно для использования. Я верю, что вокруг него есть PHP-обертки, но я сам изучил команды и не стал над ними работать.
Предоставленная документация и примеры очень подробны, и форум очень активен, если вам нужна помощь.
Проверьте это по адресу: http://imagemagick.com/script/index.php