Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Графика > Как изменить размер JPG ?


Автор: Termos 3.4.2006, 16:26
Очень надо, что бы при выкладывании картинки создавалась ее уменьшенная копия.
Как?

Автор: PARROT 3.4.2006, 18:15
Лучше при закачивании картинки, создавалась ее копия.
Поищи на форуме было много тем по этому поводу.

Автор: Ciber SLasH 3.4.2006, 21:34
Поиск по слову: imagecopyresized

Автор: anka 1.12.2006, 09:06
Код

<?
function resize($inputFilename)
{
    $imagedata = getimagesize($inputFilename);
    $w = $imagedata[0];
    $h = $imagedata[1];

        $new_w = 50;
        $new_h = $h*$new_w/$w;

    $im2 = ImageCreateTrueColor($new_w, $new_h);
    $image = ImageCreateFromJpeg($inputFilename);
    imagecopyResampled ($im2, $image, 0, 0, 0, 0, $new_w, $new_h, $imagedata[0], $imagedata[1]);
    header("Content-type: image/jpeg") ;
    imagejpeg($im2,'',20);
}
$img=$_GET["img"];
resize($img);
?>


Автор: aleksey_from_kg 1.12.2006, 10:20
Код


// Функция автоматического масштабирования изображения
// $filename — имя исходного изображения
// $smallimage — имя файла уменьшенной копии
// $w и $h — максимальные размеры изображения по ширине и высоте

function resizeimg($filename, $smallimage, $w, $h)
{
$dest_img = imagecreatetruecolor($w, $h);
// Определение коэффициента сжатия уменьшенной копии изображения
$ratio = $w/$h;
// Получение размеров исходного изображения
$size_img = getimagesize($filename);

// Если размеры меньше, то масштабирование не нужно
if (($size_img[0]<$w) && ($size_img[1]<$h)) return true;
// Определение коэффициента сжатия исходного изображения
$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);
echo"$dest_img";
// Вызов функции создания изображения
// в зависимости от расширения исходного файла
if ($size_img[2]==2) $src_img = imagecreatefromjpeg($filename);
else if ($size_img[2]==1) $src_img = imagecreatefromgif($filename);
else if ($size_img[2]==3) $src_img = imagecreatefrompng($filename);
// Масштабирование изображения
if (!imagecopyresampled($dest_img, $src_img,
0, 0, 0, 0, $w, $h,
$size_img[0], $size_img[1])) return false;
//В зависимости от расширения имени файла с уменьшенной копией,
// переданного в параметрах функции,
// вызываем функцию сохранения уменьшенной копии в файл
$path_parts=pathinfo($smallimage);
if ($path_parts["extension"] == "jpg")
imagejpeg($dest_img, $smallimage);
else if ($path_parts["extension"] == "gif")
imagegif($dest_img, $smallimage);
else if ($path_parts["extension"] == "png")
imagepng($dest_img, $sma11image);
// Очищение памяти от созданных изображений
imagedestroy($dest_img);
imagedestroy($src_img);
return true;

}

//###############
resizeimg("jpg.jpg", "small.jpg", 50, 50);

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)