|
|
|
|
|
для: sim5
(28.03.2010 в 14:30)
| | Спасибо. | |
|
|
|
|
|
|
|
для: Nekifrovv
(28.03.2010 в 14:28)
| | <img src="filenamescript.php" />
Примеров тут столько, что уже писать просто не охота, поищите в разделе.
Собственно я и так вам уже все написал как. | |
|
|
|
|
|
|
|
для: sim5
(28.03.2010 в 14:22)
| | А можно на примере? А вызвать тогда функцию как?? | |
|
|
|
|
|
|
|
для: Николай2357
(28.03.2010 в 14:12)
| | Спасибо, я знаю. Планируется загружать изначально только квадратные фото. | |
|
|
|
|
|
|
|
для: Nekifrovv
(28.03.2010 в 14:04)
| | Можно.
echo '<img src="mini_'.resize('http://www.webnotes.com.ua/demo/img-resize/test.jpg',200).'" />';
imagejpeg($thumb, $pref.$imgname); и другие, а передаем заголовок и выводим изображение в браузер:
imagejpeg($thumb,null,требуемое сжатие);
а src изображения должен обращаться к этому скрипту. | |
|
|
|
|
|
|
|
для: Nekifrovv
(28.03.2010 в 14:04)
| | Если из любого (то есть не квадратного) сделать "сжатое изображение 150х150", то получится "сплюснутое". )
Можно только середину вырезать. | |
|
|
|
|
|
|
|
для: sim5
(28.03.2010 в 13:02)
| | Спасибо конечно, но половина того что вы написали вообще ник чему.
Есть код:
<?php
function resize ($filename, $size)
{
$pref = 'mini_';
$img = strtolower(strrchr(basename($filename), "."));
$imgname = basename($filename);
$formats = array('.jpg', '.gif', '.png', '.bmp');
if (in_array($img, $formats))
{
list($width, $height) = getimagesize($filename);
$new_height = $height * $size;
$new_width = $new_height / $width;
$thumb = imagecreatetruecolor($size, $new_width);
switch ($img)
{
case '.jpg': $source = @imagecreatefromjpeg($filename); break;
case '.gif': $source = @imagecreatefromgif($filename); break;
case '.png': $source = @imagecreatefrompng($filename); break;
case '.bmp': $source = @imagecreatefromwbmp($filename); break;
}
imagecopyresized($thumb, $source, 0, 0, 0, 0, $size, $new_width, $width, $height);
switch ($img)
{
case '.jpg': imagejpeg($thumb, $pref.$imgname); break;
case '.gif': imagegif($thumb, $pref.$imgname); break;
case '.png': imagepng($thumb, $pref.$imgname); break;
case '.bmp': imagewbmp($thumb, $pref.$imgname); break;
}
}
else return 'Error';
@imagedestroy($thumb);
@imagedestroy($source);
return $imgname;
}
echo '<img src="mini_'.resize('http://www.webnotes.com.ua/demo/img-resize/test.jpg',200).'" />';
?>
|
Можно ли его как-нибудь поправить так, чтобы из любого изображения отображалось сжатое изображение 150х150, но при этом не сохранялось на сервере? Может быть есть какие-нибудь другие решения?.
Ключевые моменты: только отображалось, не сохранялось на сервере.
Спасибо. | |
|
|
|
|
|
|
|
для: Nekifrovv
(28.03.2010 в 12:49)
| | Что как? Вы можете указать в теге для большого изображения размеры в процентах, можете задать непосредственно в пикселях меньшие. Но вес картинки от этого не уменшится.
Если ваше "как", как лучше значит, то:
во-первых какими товарами надо торговать, чтобы потребовалось изображение весом в 1 МБ.
во-вторых, большое изображение и необязательно нужно для всех товаров, а значит такое можно показывать в окне "Увеличить".
Самое большое, на мой взгляд, изображние, это максимум 500-600 рх по ширине, а это никак не 1 МБ. Какие чаще всего изображения товаров будут запрашиваться? Конечно самые малые при выводе списка товаров на страницу. Значит, при загрузке описания товара и его изображения, уменьшаем исходное (если надо) до 500-600 рх по ширине, и готовим самое малое 50 рх по ширине. Эти изображения и кладем на сервер. А вот изображение среднего размера (150), надо полагать для страницы подробного описания товаров, а это всего один запрос, и не так часто, следовательно такое изображение можно приготовить на лету, при запросе страницы.
Все это делается с помощью GD. | |
|
|
|
|
|
|
|
для: sim5
(28.03.2010 в 05:15)
| | Узнал что можно, теперь весь вопрос в том как | |
|
|
|
|
|
|
|
для: Nekifrovv
(27.03.2010 в 23:32)
| | Показать с меньшими размерами конечно можно, но вот уменьшить таким образом вес нельзя. | |
|
|
|
|