PHP Отображение изображения уменьшено и изменено - PullRequest
2 голосов
/ 28 января 2011

Есть ли способ отображения уменьшенного и измененного размера изображения на сервере без сохранения уменьшенного?Например, если изображение размером 500x500 и 250 КБ, я хочу, чтобы оно отображалось в браузере пользователя размером 50 x 50 и 45 КБ.

Если нет способа, как я могу временно создать его, чтобы перейти в папку и удалить через некоторое времявставил?

Ответы [ 3 ]

3 голосов
/ 28 января 2011
header("Content-type: image/jpeg");
$image = imagecreatefromjpeg($url);
$thumbImage = imagecreatetruecolor(50, 50);
imagecopyresized($thumbImage, $image, 0, 0, 0, 0, 50, 50, 500, 500);
imagejpeg($thumbImage,"",85);
imagedestroy($image);
imagedestroy($thumbImage);

Но вы должны как-то кешировать результат, чтобы снизить нагрузку на сервер.

0 голосов
/ 28 января 2011

Я бы настоятельно рекомендовал вместо того, чтобы пытаться изменить размер большого изображения, чтобы вы во время загрузки сохраняли уменьшенную версию и сохраняли исходную версию.Используя облачный хостинг, такой как S3, вы можете сделать это дешево.

Самый логичный процесс - выполнять дорогостоящую операцию (масштабирование фотографии) один раз, а не несколько раз.

В ответ на другой вопрос вы можете использовать GD или imagemagick для уменьшения изображения,Есть сотни учебников о том, как это сделать.Если вы хотите пойти по этому пути, я бы посмотрел учебник Google и пошел.

0 голосов
/ 28 января 2011

Похоже, все, что вы хотите сделать, это установить атрибуты height и width тега HTML-изображения.

<img src='blah' height=50 width=50 />
Можно также использовать

проценты.

CSS обеспечивает немного больше контроля и может применяться ко всем изображениям (или ко всем изображениям определенного класса). С его помощью вы можете указать max-height и max-width, которые не будут влиять на изображения меньшего размера. Ниже будут применяться все изображения с классом resizedimages

.resizedimages {max-height: 400px; max-width: 400px}

Если вы не заинтересованы в сохранении изображения с измененным размером, то это звучит как проблема клиента. PHP не имеет к этому никакого отношения (кроме, возможно, рендеринга необходимого HTML)

ПРИМЕЧАНИЕ. Если пользователь щелкнет правой кнопкой мыши и сохранит изображение, оно все равно будет заполнено на 250 КБ. Это чисто проблемы отображения. Если этот аспект важен для вас, я не знаю другого способа, кроме сохранения уменьшенной копии.

Это, вероятно, не самые лучшие ресурсы, лишь немногие из них подошли к вершине Google.

http://www.w3schools.com/tags/tag_img.asp
http://www.fastechws.com/tricks/web/image-max-width-height.php

...