2011-01-28 5 views
2

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

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

+1

Возможно, но не очень желательно, потому что уменьшение изображения очень дорого. Несколько десятков одновременных запросов на изменение размера изображения могут наложить много нагрузки на сервер. Последний может быть выполнен с использованием сценария очистки (например, «удалить все файлы старше 1 часа»), но вам нужно будет добавить более подробную информацию, чтобы получить советы по этому поводу –

ответ

3
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

cooooool i did not know this –

+0

Это часть PHP GD, посмотрите в руководстве по PHP и прочитайте несколько руководств, чтобы узнать, как их использовать лучше. Это был простой пример, основанный на значениях в вопросе выше. – Pekkasso

-1

Похоже, что все, что вы хотите сделать, это установить атрибуты 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

0

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

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

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

Смежные вопросы