[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Изменение размера картинки и корректное сохранение
Есенин
Здравствуйте!
Есть функция которая изменяет размер картинки и сохраняет ее!

1)Как здеть что бы она сохраняла измененную картинку в эту же директорию в папку image!

2)Когда задаю имя измененной картинки,то сохраняется оно далеко не под этим именем!



<
Код
<?
// Функция изменения размера изображения
function resizeimg($filename, $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);
$white = imagecolorallocate($dest_img, 255, 255, 255);
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);

// масштабируем изображение функцией 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]);
// сохраняем уменьшенную копию в файл
if ($size_img[2]==2){
$smallimage = tempnam("/tmp", "FOO").".jpg";
imagejpeg($dest_img, $smallimage);
}
else if ($size_img[2]==1){
$smallimage = tempnam("c:\webservers\home\test2.ru\www", "FOO").".gif";
imagegif($dest_img, $smallimage);
}
else if ($size_img[2]==3){
$smallimage = tempnam("/tmp", "FOO").".png";
imagepng($dest_img, $smallimage);
}
// чистим память от созданных изображений
imagedestroy($dest_img);
imagedestroy($src_img);
return $smallimage;
}
$filename="im.jpg";
$w=150;
$h=150;
resizeimg($filename, $w, $h);
?>




Спустя 28 минут, 16 секунд (25.05.2007 - 11:43) Timok написал(а):
обрати внимание на эту строку:
Код
$smallimage = tempnam("/tmp", "FOO").".jpg";

файл создаётся в директории /tmp, имя файла генерируется случайным образом с префиксом "FOO".
Чтобы самому задавать имя новой картинки, добавь ещё один параметр в функции, примерно так:

Код
function resizeimg($filename, $w, $h, $smallimage) // smallimage - новое имя
{
...

и убери из скрипта эти строчки
Код
...
$smallimage = tempnam("/tmp", "FOO").".jpg";
...
$smallimage = tempnam("/tmp", "FOO").".gif";
...
$smallimage = tempnam("/tmp", "FOO").".png";
...

Спустя 57 минут (25.05.2007 - 12:40) Есенин написал(а):
Цитата(Timok @ 25.5.2007, 8:43) [snapback]21238[/snapback]
обрати внимание на эту строку:
Код
$smallimage = tempnam("/tmp", "FOO").".jpg";

файл создаётся в директории /tmp, имя файла генерируется случайным образом с префиксом "FOO".
Чтобы самому задавать имя новой картинки, добавь ещё один параметр в функции, примерно так:

Код
function resizeimg($filename, $w, $h, $smallimage) // smallimage - новое имя
{
...

и убери из скрипта эти строчки
Код
...
$smallimage = tempnam("/tmp", "FOO").".jpg";
...
$smallimage = tempnam("/tmp", "FOO").".gif";
...
$smallimage = tempnam("/tmp", "FOO").".png";
...



Добавлю в функцию еще одно значение а как самое главное-сохранить?

Спустя 1 час, 11 минут, 26 секунд (25.05.2007 - 13:52) Timok написал(а):
Цитата
как самое главное-сохранить?

сохраняют imagepng(), imagegif(), imagejpeg() соответсвенно для PNG, GIF, JPEG.

Спустя 6 месяцев, 2 дня, 6 часов, 44 минуты, 20 секунд (27.11.2007 - 21:36) vbi написал(а):
Цитата(Timok @ 25.5.2007, 10:52) [snapback]21248[/snapback]
Цитата
как самое главное-сохранить?

сохраняют imagepng(), imagegif(), imagejpeg() соответсвенно для PNG, GIF, JPEG.


imagepng($img,"filename.png") так думаю понятнее, второй параметр имя третий качество ну а первый само изображение


_____________
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.