|
|
|
| Из разны книжек натаскал кода, что бы изображение уменьшалось. Применять я его буду в галлерее (т.е. тыкаем на маленьких скриншот, видим большой).
Вот так вот задана картинка:
<img src=\"getimage.php?img=screenshots/$_GET[game_id]/01.jpg\">
|
Вот файл с уменьшителем:
<?php
$img = $_GET[img];
echo $img;
function resizeimg($filename, $w, $h) {
$ratio = $w/$h;
$size_img = getimagesize($filename);
if($size_img[0]<$w) 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);
elseif($size_img[2]==1) $src_img = imagecreatefromgif($filename);
elseif($size_img[2]==3) $src_img = imagecreatefrompng($filename);
if (!imagecopyresampled($desp_img, $src_img,
0, 0, 0, 0, $w, $h,
$size_img[0], $size_img[1])) return false;
$path_parts=pathinfo($filename);
if ($path_parts["extension"] == "jpg") {
header ("Content-type: image/jpeg");
imagejpeg($dest_img);
} elseif ($path_parts["extension"] == "gif") {
header ("Content-type: image/gif");
imagegif($dest_img);
} elseif ($path_parts["extension"] == "png") {
header ("Content-type: image/png");
imagepng($dest_img);
}
imagedestroy($dest_img);
imagedestroy($src_img);
return true;
}
$i = resizeimg($img, 300, 150);
echo $i;
?>
Выдает пустое изображение (т.е ничего не выдает).
|
| |
|
|
|
|
|
|
|
для: devil943
(04.01.2008 в 01:21)
| | Такой подход порочен. Допустим, у вас на странице 50 превьюшек. Это значит, что при загрузке этой страницы, моментально на сервере взлетит 50 php! Картинки будут грузиться долго, сервер лопнет.
Превьюшки нужно делать, при ЗАГРУЗКЕ картинок на сервер, и класть их рядышком. | |
|
|
|
|
|
|
|
для: SHAman
(04.01.2008 в 15:58)
| | Ну я пока только изучаю функции для работы с изображением. Мне просто интересно, почему оно не работает? | |
|
|
|
|
|
|
|
для: devil943
(04.01.2008 в 17:22)
| |
<?php
$img = $_GET[img]; #Получили адрес картинки
echo $img; #зачем-то его вывели. Нафига? Уберите.
|
Попробуйте. | |
|
|
|
|
|
|
|
для: SHAman
(04.01.2008 в 18:19)
| | >
><?php
>$img = $_GET[img]; #Получили адрес картинки
>echo $img; #зачем-то его вывели. Нафига? Уберите.
>
|
>
>Попробуйте.
Это я пробовал.... оно и без этого не работает | |
|
|
|
|
|
|
|
для: devil943
(04.01.2008 в 01:21)
| | Попробуйте убрать пока что header'ы. Скорее всего, увидите что-то новое) | |
|
|
|
|
|
|
|
для: Киналь
(04.01.2008 в 23:29)
| | Так ошибок заголовком он не выдает (и не должен, они генерятся в другом месте).
Ошибок вообще нет, как и результата. | |
|
|
|
|
|
|
|
для: devil943
(04.01.2008 в 23:45)
| | уберите все выводы, кроме последнего! Что за глупость? Я просмотрел, а сами не догадаетесь?
echo $dest_img; //убрать!
|
| |
|
|
|
|
|
|
|
для: SHAman
(04.01.2008 в 23:54)
| | >уберите все выводы, кроме последнего! Что за глупость? Я просмотрел, а сами не догадаетесь?
>
>
>echo $dest_img; //убрать!
>
|
Сделал, не помогло. | |
|
|
|
|
|
|
|
для: devil943
(04.01.2008 в 23:45)
| | То есть если даже убрать все заголовки, все равно белый экран? | |
|
|
|
|
|
|
|
для: Киналь
(04.01.2008 в 23:55)
| | Экран не белый. Просто нет изображения.... как бы это описать.. красный крестик :)
У картинки вот такой путь: http://o-rpg.com/games/getimage.php?img=screenshots/2/01.jpg
Есть папка screenshots, а в ней 1,2,3 и тд, где эти цифры - идентификатор игры. | |
|
|
|
|
|
|
|
для: devil943
(05.01.2008 в 14:16)
| | Хм. Красный крестик - это, видимо, отстуствие картинки) То есть браузер пытается вывести картинку, но ее нет или она неправильная. Раз браузер пытается вывести картинку, значит, ему переданы заголовки картинки. А раз переданы заголовки картинки, никаких сообщений об ошибке вы не увидите. Вот про то я и толкую: уберите все header'ы и обратитесь непосредственно к скрипту, то есть напишите в строке адреса http://o-rpg.com/games/getimage.php?img=screenshots/2/01.jpg. Тогда вы увидите либо какие-то сообщения об ошибках, либо кучу иероглифов - картинку в текстовом виде. Тогда уже будет, о чем думать) | |
|
|
|
|
|
|
|
для: Киналь
(05.01.2008 в 14:46)
| | Если без аргументов - выдает единицу....
Если подставить путь то выдаест ошибку, указанную вами вот в этйо строке:
if (!imagecopyresampled($desp_img, $src_img, 0, 0, 0, 0, $w, $h, $size_img[0], $size_img[1])) return false;
|
| |
|
|
|
|
|
|
|
для: devil943
(05.01.2008 в 14:55)
| | >Если без аргументов - выдает единицу....
>Если подставить путь то выдаест ошибку, указанную вами вот в этйо строке:
>
>
>if (!imagecopyresampled($desp_img, $src_img, 0, 0, 0, 0, $w, $h, $size_img[0], $size_img[1])) return false;
>
|
Ну вот ее и исправляйте=) | |
|
|
|
|
|
|
|
для: Киналь
(06.01.2008 в 01:15)
| | Легко сказать :) я например ошибки не вижу
Он же сообщает, что один из аргументов функции - нул! Но это по идееи не так! | |
|
|
|
|
|
|
|
для: devil943
(06.01.2008 в 02:15)
| | Компилятор всегда прав, почти как клиент=) А вообще поиск ошибок называется отладкой и занимает, как правило, фигову тучу времени. В данном случае, возможно, дело в опечатке - у вас есть переменная $dest_img, а в функцию вы подставляете $desp_img. В общем же случае, если компилятору не нравится какая-то переменная, выводите ее на экран и смотрите - соответствует она вашим ожиданиям или нет. | |
|
|
|
|
|
|
|
для: Киналь
(06.01.2008 в 12:48)
| | О! Точно, спасибо огоромное! | |
|
|
|
|
|
|
|
для: Киналь
(05.01.2008 в 14:46)
| | Ничего подобного! Напишите в html просто <img src=""> и увидите этот самый крестик. Заголовки тут не при чем. При выводе изображений, заголовки посылать необходимо. Здесь ошибки нет. | |
|
|
|
|
|
|
|
для: SHAman
(05.01.2008 в 16:09)
| | Вы лучше скажите в чем ошибка... Так как скрипт фактически списан из книги "PHP на примерах" авторов этого форума, он должен быть правильный.. | |
|
|
|
|
|
|
|
для: SHAman
(05.01.2008 в 16:09)
| | >Ничего подобного! Напишите в html просто <img src=""> и увидите этот самый крестик. Заголовки тут не при чем. При выводе изображений, заголовки посылать необходимо. Здесь ошибки нет.
Как раз при чем. Для отладки их как раз убрать и надо. Вот ведь, одну ошибку уже нашли. можно копать дальше. Когда ошибки перестанут появляться, вот тогда заголовки надо будет вернуть. | |
|
|
|
|
|
|
|
для: devil943
(05.01.2008 в 14:16)
| | Кстати, вот вам и первая ошибка:
Warning: imagecopyresampled(): supplied argument is not a valid Image resource in /home/host4571/www/games/getimage.php on line 18 | |
|
|
|