[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: imagejpeg() возвращает Resource ID, почему?
Micr0soft
Добрый день, пишу функцию конвертации изображений, то есть png, gif -> jpg

Вот столкнулся с проблемой, все работает, но на фтп в корне появляются файлы Resource ID 24 ... Подскажите, пожалуйста, где я ошибся в коде, что бы этого не было?

Это связанно с imagejpeg($img, $img, 100); и вторым параметром $img, пытался присвоить в переменную $img = imagejpeg($img, 100); но тогда вовращается единица, и не понятно что с ней делать.

function Convert ($img)
{
$type = getimagesize($img);
$type = substr($type['mime'], strpos($type['mime'], '/') + 1);

switch ($type)
{
case 'png': $img = imagecreatefrompng($img);
break;

case 'gif': $img = imagecreatefromgif($img);
break;

case 'jpeg': $img = imagecreatefromjpeg($img);
break;

case 'jpg': $img = imagecreatefromjpeg($img);
break;

default: $img = false;
}

if ($img != false)
{
imagejpeg($img, $img, 100);
return $img;
}
else
{
return false;
}
}


 ! 

М
Обрамляйте код специальными тегами !
Winston




Спустя 23 минуты, 54 секунды (26.09.2011 - 12:27) linker написал(а):
у imagejpeg() есть параметр отвечающий за путь к файлу для сохранения. И он располагается как раз тут imagejpeg($img, 'c:\file.jpg', 100);. Неужели так было сложно почитать мануал, там даже примеры есть.

Спустя 3 часа, 1 минута, 13 секунд (26.09.2011 - 15:29) Micr0soft написал(а):
Я знаю какие параметы есть у imagejpeg() и за что они отвечают, мне только нужно не сохранять на фтп(для этого у меня отдельная функция), а записать картинку в переменную что бы потом передать для обработки в другие функции.
Если так imagejpeg($img, $img, 100) то оно записывает как мне нужно в переменную $img и я так понял сохраняет на фтп под видом Resource ID, пытался иначе сделать, $img = imagejpeg($img, 100) - тогда в $img записывается 1, это не подходит.

Спасибо.

Спустя 57 минут, 11 секунд (26.09.2011 - 16:26) linker написал(а):
imagejpeg() - это финальная стадия работы с изображением, когда изображение либо сохраняется на диск, либо выводится в браузер пользователя. Ты плохо знаешь какие там требуются параметры. Ещё раз обращаю внимание на формат
imagejpeg($img, 'c:\file.jpg', 100); // запись в файл
imagejpeg($img, null, 100); // вывод на экран
Данная функция возвращает либо true либо false, как результат успешной или безуспешной работы. Я вообще не понимаю, ты хочешь получить ссылку на ресурс и почему-то тупо игнорируешь $img, которое и является именно тем, что тебе надо. Не пробовал
return $img;
Ещё раз читаем внимательно мануал.

Спустя 1 час, 22 минуты, 55 секунд (26.09.2011 - 17:49) Micr0soft написал(а):
Сейчас перечитаю.
Относительно
return $img;
если в функцию передавалось изображение формата png или gif - их нужно ковертнуть в jpeg, что именно я и делал с помощью imagejpeg(); а если просто написать как Вы написали, то эта функция Convert ($img) теряет всякий смысл, так как будет возвращено тоже изображение что и поступало первоначально.

Спустя 14 часов, 7 минут, 8 секунд (27.09.2011 - 07:56) linker написал(а):
Micr0soft
Ты пишешь
Цитата
мне только нужно не сохранять на фтп(для этого у меня отдельная функция), а записать картинку в переменную что бы потом передать для обработки в другие функции

отсюда делаем вывод, что тебе нужно сделать именно return $img и уже где-то в конце скрипта, после всех остальных операций, перед передачей по фтп сделать
imagejpeg($img, 'file.jpeg', 100); 
ftp_put($ftp, 'file.jpeg', 'file.jpeg');
Повторяю ещё раз, imagejpeg() сохраняет изображение в файл, либо выводит на экран пользователю. Исходя из этой информации переделывай свой код.
Быстрый ответ:

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