PHP обрезать и изменять размер изображения на лету - PullRequest
3 голосов
/ 27 января 2010

У меня есть веб-страница, на которой отображаются изображения, размер которых я не знаю заранее. Я пытался использовать функции GD, чтобы заставить скрипт изменить размер и обрезать мои изображения "Непосредственно перед тем, как они отображаются ... Мне не нужны кеши", но мне не удалось. Мне нужен скрипт, который я могу назвать так

<img src="display.php?src=blablabla&height=100&width=200" ?>

или даже путем вычисления ширины и высоты CSS, чтобы сохранить пропорции и заставить изображение коснуться рамки изнутри, как

<img src="blabla.jpg" style="height:<?php echo $height; ?>; width:<?php echo width; ?>" />

Мне не нужно никакого кеширования. Как я могу это сделать?

Ответы [ 4 ]

7 голосов
/ 27 января 2010

WideImage rlz! :)

Изменение размера:

header('Content-type: image/jpeg');

echo WideImage::load('image.jpg')->resize(200, 100)->asString('jpg', 80);
// image.jpg resized at 200x100 with 80% of quality
3 голосов
/ 27 января 2010

Вам нужно будет использовать первый стиль. Поскольку это происходит на стороне сервера, вы не можете проверить CSS, чтобы получить желаемый размер.

Вам просто нужно использовать функции GD, чтобы открыть соответствующий файл, использовать imagecopyresampled(), чтобы изменить его размер, а затем вывести в буфер, используя imagejpeg. Не забудьте установить правильные заголовки:

header('Content-type: image/jpeg');
1 голос
/ 27 января 2010

ИЛИ phpthumb http://phpthumb.sourceforge.net/

Демонстрация доступна по адресу: http://phpthumb.sourceforge.net/demo/demo/phpThumb.demo.demo.php

0 голосов
/ 27 января 2010

Вы ищете TimThumb ( Демо | Исходный код ):

Просто скопируйте исходный код в новый документ под названием «timthumb.php», место это в папке на вашем сайте (например: / scripts /) и назовите изображение как это:

<img src="/scripts/timthumb.php?src=/images/whatever.jpg&h=150&w=150&zc=1" alt="">
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...