Проблема создания миниатюр для изображений в php - PullRequest
0 голосов
/ 10 сентября 2018

я написал следующий код для создания миниатюр для изображений в php, он работал нормально для некоторых изображений, но в случае изображений с высоким разрешением / большим размером показывал

Эта страница не работает

вопрос. Здесь imagecreatefromjpeg() не работает. Какое решение для этого, пожалуйста, помогите мне ..

function make_accused_thumb($src, $dest, $desired_width) {

/* read the source image */
//ini_set('gd.jpeg_ignore_warning', 1);
//echo $src;exit;
//echo $src;exit;
$source_image = @imagecreatefromjpeg($src);
echo $src;exit;
if (!$source_image)
{
  $source_image= @imagecreatefromstring(file_get_contents($src));
}

$width = @imagesx($source_image);
$height = @imagesy($source_image);

/* find the "desired height" of this thumbnail, relative to the desired width  */
$desired_height = @floor($height * ($desired_width / $width));

/* create a new, "virtual" image */
$virtual_image = @imagecreatetruecolor($desired_width, $desired_height);

/* copy source image at a resized size */
@imageCopyResized($virtual_image, $source_image, 0, 0, 0, 0, $desired_width, $desired_height, $width, $height);

/* create the physical thumbnail image to its destination */
@header('Content-Type: image/jpeg');
@imagejpeg($virtual_image, $dest);

}

1 Ответ

0 голосов
/ 10 сентября 2018

Если вы когда-либо выполняли какую-либо обработку изображений в своих PHP-приложениях, вы начнете понимать, насколько вы ограничены при использовании собственных PHP-команд, таких как createimagefromjpg и т. Д. Это пожирает память вашего веб-сервера! В настоящее время, когда люди несут в своих телефонах 10-мегапиксельные камеры, загрузка фотографий и изменение их размеров могут стать реальной нагрузкой на ресурсы, особенно если это делают несколько пользователей на веб-сайте одновременно.

Чтобы обойти эту загадку, есть PHP-библиотека imagick (класс-обертка), которая позволяет вам получить доступ к терминальной программе под названием ImageMagick. ImageMagick изначально работает на компьютере и доступен для Unix, Linux, Mac и Windows, поэтому его запуск не должен быть проблемой. Здесь нужно учитывать только то, есть ли у ваших хостинг-провайдеров PHP-imagick. Если нет, в зависимости от вашего хостинг-пакета вы можете подключиться к вашему серверу по SSH.

Как только я переключился на использование класса IMagick PHP, ошибки прекратились, и сайт значительно ускорился.

Вот как установить на Linux и Windows:

Howto: установить Imagick (для php) в Ubuntu 11.10

Как установить ImageMagick для использования с PHP на Windows 7 (3)

Вот документы для класса IMagick: http://be2.php.net/manual/en/class.imagick.php

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...