|
|
|
| Подскажите пожалуйста,как с помощью php изменить размер изображения (ширину и высоту)? | |
|
|
|
|
|
|
|
для: SunnyDAY
(10.08.2007 в 02:56)
| | Алгоритм cheops-а (пропорции сохраняются):
function resizeimg($filename, $smallimage, $w, $h)
{
// Имя файла с масштабируемым изображением
$filename = $filename;
// Имя файла с уменьшенной копией.
$smallimage = $smallimage;
// определим коэффициент сжатия изображения, которое будем генерить
$ratio = $w/$h;
// получим размеры исходного изображения
$size_img = getimagesize($filename);
// получим коэффициент сжатия исходного изображения
$src_ratio=$size_img[0]/$size_img[1];
// Здесь вычисляем размеры уменьшенной копии, чтобы при масштабировании сохранились
// пропорции исходного изображения
if ($ratio<$src_ratio)
{
$h = $w/$src_ratio;
}
else
{
$w = $h*$src_ratio;
}
// создадим пустое изображение по заданным размерам
$dest_img = imagecreatetruecolor($w, $h);
// создаем jpeg из файла
$src_img = imagecreatefromjpeg($filename);
// масштабируем изображение функцией imagecopyresampled()
// $dest_img - уменьшенная копия
// $src_img - исходной изображение
// $w - ширина уменьшенной копии
// $h - высота уменьшенной копии
// $size_img[0] - ширина исходного изображения
// $size_img[1] - высота исходного изображения
imagecopyresampled($dest_img, $src_img, 0, 0, 0, 0, $w, $h, $size_img[0], $size_img[1]);
// сохраняем уменьшенную копию в файл
imagejpeg($dest_img, $smallimage);
// чистим память от созданных изображений
imagedestroy($dest_img);
imagedestroy($src_img);
return true;
}
|
Алгоритм Зеева Сураски (пропорции не сохраняются, изображение писывается в произвольные ширину и высоту):
function makeThumbnail($source, $destination, $width, $height)
{
$sourceImage = @imagecreatefromjpeg($source);
$destinationImage = imagecreatetruecolor($width, $height);
imagecopyresampled($destinationImage, $sourceImage, 0, 0, 0, 0, $width, $height, imagesx($sourceImage), imagesy($sourceImage));
imagejpeg($destinationImage, $destination);
}
|
| |
|
|
|
|
|
|
|
для: Shiva
(10.08.2007 в 07:42)
| | Большое спасибо | |
|
|
|
|
|
|
|
для: SunnyDAY
(16.08.2007 в 07:49)
| | Люди, у кого есть алгоритм который сохраняет пропорцию рисунка? | |
|
|
|
|
|
|
|
для: Shiva
(10.08.2007 в 07:42)
| |
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Новая страница 1</title>
</head>
<body>
<?php
function resizeimg($filename, $smallimage, $w, $h)
{
// Имя файла с масштабируемым изображением
$filename = $filename;
// Имя файла с уменьшенной копией.
$smallimage = $smallimage;
// определим коэффициент сжатия изображения, которое будем генерить
$ratio = $w/$h;
// получим размеры исходного изображения
$size_img = getimagesize($filename);
// получим коэффициент сжатия исходного изображения
$src_ratio=$size_img[0]/$size_img[1];
// Здесь вычисляем размеры уменьшенной копии, чтобы при масштабировании сохранились
// пропорции исходного изображения
if ($ratio<$src_ratio)
{
$h = $w/$src_ratio;
}
else
{
$w = $h*$src_ratio;
}
// создадим пустое изображение по заданным размерам
$dest_img = imagecreatetruecolor($w, $h);
// создаем jpeg из файла
$src_img = imagecreatefromjpeg($filename);
// масштабируем изображение функцией imagecopyresampled()
// $dest_img - уменьшенная копия
// $src_img - исходной изображение
// $w - ширина уменьшенной копии
// $h - высота уменьшенной копии
// $size_img[0] - ширина исходного изображения
// $size_img[1] - высота исходного изображения
imagecopyresampled($dest_img, $src_img, 0, 0, 0, 0, $w, $h, $size_img[0], $size_img[1]);
// сохраняем уменьшенную копию в файл
imagejpeg($dest_img, $smallimage);
// чистим память от созданных изображений
imagedestroy($dest_img);
imagedestroy($src_img);
return true;
}
$image = resizeimg('../news/image/n_witcher.png', '../news/image/small_n_witcher.png', '150', '150');
echo ("
<img src=\"$image\"><br>то, чо выдает функция<br>
<img src=\"http://o-rpg.com/news/image/n_witcher.png\"><br>исходник<br>
<img src=\"http://o-rpg.com/news/image/small_n_witcher.png\"><br>маленький<br>
");
?>
</body>
</html>
|
Вот что оно на это выдает:
http://o-rpg.com/admin/image_size.php | |
|
|
|
|
|
|
|
для: devil943
(06.01.2008 в 00:53)
| | Вот нашел. Юзал, но писал не я. Нашел в нете. Работало. Но только jpeg, на сколько я помню.
<?php
##$src - source image
##$w - max width
##$h - max height
##http://dmitroff.net - new versions of this and other php scripts
extract($HTTP_GET_VARS);
if (!isset($q)) {
$quality = 70;
}
else {
$quality = $q;
}
// Content type
header('Content-type: image/jpeg');
list($width, $height) = getimagesize($img);
$newheight = $h;
$temp = $height/$newheight;
$newwidth = $width/$temp;
if ($newwidth > $w) {
$newwidth = $w;
$temp = $width/$newwidth;
$newheight = $height/$temp;
}
$thumb = imagecreatetruecolor($newwidth, $newheight);
$source = imagecreatefromjpeg($img);
imagecopyresampled($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
// Output
imagejpeg($thumb, null, $quality);
?>
|
| |
|
|
|
|
|
|
|
для: SHAman
(06.01.2008 в 02:51)
| | >Но только jpeg, на сколько я помню.
А так не видно??? imagecreatefromjpeg(), imagejpeg() | |
|
|
|
|
|
|
|
для: mihdan
(07.01.2008 в 01:28)
| | это тупой копипаст. я даже не читал что там. Помню, что работает и ладно. | |
|
|
|
|
|
|
|
для: Shiva
(10.08.2007 в 07:42)
| | Алгоритм cheops-а у меня лично успешно работает.
Брал отсюда всю функцию, ничего не менял.
Спасибо! | |
|
|
|