Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Буферизация картинки
 
 автор: FoReAcH   (30.11.2007 в 15:26)   письмо автору
 
 

Я думаю хорошо знающие php меня поймут.Значит мне нужно взять картинку,изменить ее размеры и сохранить эту же самую картинку в другом месте с уже измененными размерами.
Для этого я юзаю такую функцию:

function get_image($img){
ob_start();
$width='106';
$rgb=0xFFFFFF;
$size = getimagesize($img);
(int)$height = $size[1] * $width / $size[0];
$x_ratio = $width / $size[0];
$y_ratio = $height / $size[1];
$ratio = min($x_ratio, $y_ratio);
$use_x_ratio = ($x_ratio == $ratio);
$new_width = $use_x_ratio ? $width  : floor($size[0] * $ratio);
$new_height = !$use_x_ratio ? $height : floor($size[1] * $ratio);
$new_left = $use_x_ratio ? 0 : floor(($width - $new_width) / 2);
$new_top = !$use_x_ratio ? 0 : floor(($height - $new_height) / 2);
$isrc = ImageCreateFromJpeg($img);
$idest = imagecreatetruecolor($width, $height);
imagefill($idest, 0, 0, $rgb);
imagecopyresampled($idest, $isrc, $new_left, $new_top, 0, 0,
$new_width, $new_height, $size[0], $size[1]);
$white = ImageColorAllocate($idest, 255, 255, 255);
imagejpeg($idest);
imagedestroy($isrc);
imagedestroy($idest);
return ob_get_contents();
}

Из функции видно,что она должна вернуть уменьшиную копию в бинарном виде.(и она ее возвращает)Но вот не задача,по мимо возврата данных картинки функция выводит еще и саму картинку.Подскажите,как переписать эту функцию что бы она этого не делала.

   
 
 автор: Zirkon   (30.11.2007 в 16:25)   письмо автору
 
   для: FoReAcH   (30.11.2007 в 15:26)
 

Учим мат-часть :)


bool imagejpeg  ( resource $image  [, string $filename  [, int $quality  ]] )

Список параметров
...
filename
    The path to save the file to. If not set or NULL, the raw image stream will be outputted directly.
    To skip this argument in order to provide the quality parameter, use NULL.
...


И не нужно будет использовать ob_start();

   
 
 автор: exp   (30.11.2007 в 16:45)   письмо автору
 
   для: FoReAcH   (30.11.2007 в 15:26)
 

наверное сделать

$output = ob_get_contents();
ob_end_clean();
return $output;
}

   
 
 автор: Zirkon   (30.11.2007 в 16:48)   письмо автору
 
   для: exp   (30.11.2007 в 16:45)
 

А зачем так извращаться с ob_get_contents и т.д.? Если эти данные одним простым дополнением в imagejpeg будут доступны и будут записаны в файл?

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования