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

Форум PHP

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

 

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

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

тема: GD2
 
 автор: G-Style   (26.11.2007 в 11:02)   письмо автору
 
 

Подскажите пожалуйста, как вывести изображение, я с этим только знакомлюсь.

$imginfo = getimagesize("nike.jpg");
        $w = 80;
        $h = 80;
        $rWidth = $imginfo[0];
        $rHeight = $imginfo[1];
        if($rWidth > $rHeight) {
            $iWidth = $rWidth/($rWidth/$w);
            $iHeight = $rHeight/($rWidth/$w);
        } else {
            $iWidth = $rWidth/($rHeight/$h);
            $iHeight = $rHeight/($rHeight/$h);
        }
        
        $s_image = imagecreatetruecolor($iWidth, $iHeight);
        $r_image = imagecreatefromjpeg("nike.jpg");
        imagecopyresampled($s_image, $r_image, 0, 0, 0, 0, $iWidth, $iHeight, $imginfo[0], $imginfo[1]);


я размер поменял, а теперь это изображение надо вывести как ссылку, как сделать???

   
 
 автор: cheops   (26.11.2007 в 12:37)   письмо автору
 
   для: G-Style   (26.11.2007 в 11:02)
 

Выведите изображение следующим образом
<?php
  header
("Content-type: image/jpeg");
  
imagejpeg($s_image);
?>

А на скрипт, где расположен этот код ссылайтесь из тэга <img src=image.php>

   
 
 автор: G-Style   (26.11.2007 в 13:57)   письмо автору
 
   для: cheops   (26.11.2007 в 12:37)
 

Дело в том, что строка где я вывожу картинку как ссылку находится в теле HTML т.е. пишет, что заголовок уже отправлен.

p.s. Cheops, спасибо, за то, что Вы делаете.

   
 
 автор: ddhvvn   (26.11.2007 в 14:16)   письмо автору
 
   для: G-Style   (26.11.2007 в 13:57)
 

Так быть не должно!

В скрипте, который генерирует картинку не должно быть вообще никаких выводов текста!!!

   
 
 автор: Trianon   (27.11.2007 в 00:05)   письмо автору
 
   для: G-Style   (26.11.2007 в 13:57)
 

html-документ с картинкой и сама картинка, которая в него входит, запрашиваются двумя разными запросами к серверу, и обрабатываются (как правило) разными скриптами.
Скрипт, выводящий картинку, никакого html-кода не создает.Этот код создан в рамках обработки предыдущего запроса.

   
 
 автор: cheops   (27.11.2007 в 12:15)   письмо автору
 
   для: G-Style   (26.11.2007 в 13:57)
 

В HTML вставляйте тэг <img src=image.php>, который будет ссылаться на скрипт image.php, а в нём выводите изображение (и ничего кроме изображения не выводите) - HTML-страница и изображения - это разные документы, которые связываются друг с другом при помощи HTML-тэга <img>.

   
 
 автор: mihdan   (27.11.2007 в 00:54)   письмо автору
 
   для: G-Style   (26.11.2007 в 11:02)
 

Ваш первый пост и то что показал cheops - разные файлы

   
 
 автор: mihdan   (27.11.2007 в 00:55)   письмо автору
 
   для: G-Style   (26.11.2007 в 11:02)
 

code.php


<?
$imginfo 
getimagesize("nike.jpg");
        
$w 80;
        
$h 80;
        
$rWidth $imginfo[0];
        
$rHeight $imginfo[1];
        if(
$rWidth $rHeight) {
            
$iWidth $rWidth/($rWidth/$w);
            
$iHeight $rHeight/($rWidth/$w);
        } else {
            
$iWidth $rWidth/($rHeight/$h);
            
$iHeight $rHeight/($rHeight/$h);
        }
        
        
$s_image imagecreatetruecolor($iWidth$iHeight);
        
$r_image imagecreatefromjpeg("nike.jpg");
        
imagecopyresampled($s_image$r_image0000$iWidth$iHeight$imginfo[0], $imginfo[1]);
  
header("Content-type: image/jpeg");
  
imagejpeg($s_image);
?>


index.php


<img src="code.php" />

   
 
 автор: G-Style   (27.11.2007 в 09:23)   письмо автору
 
   для: mihdan   (27.11.2007 в 00:55)
 

Спасибо, а этот вывод картинки всегда в отдельный файл надо подключать???

   
 
 автор: sim5   (27.11.2007 в 09:48)   письмо автору
 
   для: G-Style   (27.11.2007 в 09:23)
 

Нет, не обязательно, можно в этом же скрипте выводить ссылки на изображения, в запросе помещать резмеры запрашиваемого эскиза... Но вот что нужно, так после вывода освобождать память - закрывать открытый дескриптор: imagedestroy($s_image);

   
 
 автор: G-Style   (27.11.2007 в 11:04)   письмо автору
 
   для: sim5   (27.11.2007 в 09:48)
 

У меня сейчас такая проблема. Есть функция которая выводит из БД анкеты с фотографиями, я вынес код
$imginfo = getimagesize("photo/$photo");
        $w = 80;
        $h = 80;
        $rWidth = $imginfo[0];
        $rHeight = $imginfo[1];
        if($rWidth > $rHeight) {
          $iWidth = $rWidth/($rWidth/$w);
          $iHeight = $rHeight/($rWidth/$w);
        } else {
        $iWidth = $rWidth/($rHeight/$h);
        $iHeight = $rHeight/($rHeight/$h);
        }        
        
        $s_image = imagecreatetruecolor($iWidth, $iHeight);
        $r_image = imagecreatefromjpeg("photo/$photo");
        imagecopyresampled($s_image, $r_image, 0, 0, 0, 0, $iWidth, $iHeight, $imginfo[0], $imginfo[1]);
        
        header("Content-type: image/jpeg");
        imagejpeg($s_image);

в этдельный файл и подключаю в функции т.о. <img src="img.php" border="0" alt="'.$name.'" /> но картинка не выводится, вообще не определяется.

   
 
 автор: G-Style   (28.11.2007 в 08:43)   письмо автору
 
   для: G-Style   (27.11.2007 в 11:04)
 

У меня сейчас такая проблема. Есть функция которая выводит из БД анкеты с фотографиями, я вынес код

$imginfo = getimagesize("photo/$photo"); 
        $w = 80; 
        $h = 80; 
        $rWidth = $imginfo[0]; 
        $rHeight = $imginfo[1]; 
        if($rWidth > $rHeight) { 
          $iWidth = $rWidth/($rWidth/$w); 
          $iHeight = $rHeight/($rWidth/$w); 
        } else { 
        $iWidth = $rWidth/($rHeight/$h); 
        $iHeight = $rHeight/($rHeight/$h); 
        }         
         
        $s_image = imagecreatetruecolor($iWidth, $iHeight); 
        $r_image = imagecreatefromjpeg("photo/$photo"); 
        imagecopyresampled($s_image, $r_image, 0, 0, 0, 0, $iWidth, $iHeight, $imginfo[0], $imginfo[1]); 
         
        header("Content-type: image/jpeg"); 
        imagejpeg($s_image);


в этдельный файл и подключаю в функции т.о. <img src="img.php" border="0" alt="'.$name.'" /> но картинка не выводится, вообще не определяется.

   
 
 автор: sim5   (28.11.2007 в 09:00)   письмо автору
 
   для: G-Style   (28.11.2007 в 08:43)
 

В базе храните сами фотографии или их имена (имена с путями)?

   
 
 автор: G-Style   (28.11.2007 в 09:20)   письмо автору
 
   для: sim5   (28.11.2007 в 09:00)
 

В БД, только имена.

   
 
 автор: sim5   (28.11.2007 в 09:32)   письмо автору
 
   для: G-Style   (28.11.2007 в 09:20)
 

Тогда выставляйте ссылку непосредственно на это изображение, а не РНР-обработчик изображения - <img src="pathName/imageName.ext" border="0" alt="'.$name.'" />

PS. Если $name, это как раз имя файла избражения полученное из базы, то:
<img src="pathName/$name" border="0" alt="'.$name.'" />, а уж стоит его в alt запихивать, вам решать.

   
 
 автор: mihdan   (28.11.2007 в 10:43)   письмо автору
 
   для: G-Style   (28.11.2007 в 08:43)
 

где определяется переменная $photo? Увидел только $name

   
 
 автор: sim5   (28.11.2007 в 11:31)   письмо автору
 
   для: G-Style   (28.11.2007 в 08:43)
 

Извиняюсь, не обратил внимание, вы видимо из фото авторов делаете аватарки, потому требуется масштабирование изображения. А зачем так, может лучше при загрузке изображения на сервер сразу изменить его размер, а в последствии вызывать изображение по прямой ссылке на него? Ведь регистрация клиента гораздо реже происходит, чем обращение к его фото. Лишний раз гонять обработчик изображения не потребуется.

   
 
 автор: KPETuH   (28.11.2007 в 11:37)   письмо автору
 
   для: sim5   (28.11.2007 в 11:31)
 

согласен с вами :) тоже сначала не понял зачем использоватьобработчик изображения для данной задачи...

   
 
 автор: Zirkon   (28.11.2007 в 19:35)   письмо автору
 
   для: G-Style   (28.11.2007 в 08:43)
 

Код правильный. Может не работать если вы в строке:


<img src="img.php" border="0" alt="'.$name.'" />


не передаете это самое $photo, предложил бы для примера img сделать типа:


<img src="img.php?photo=1.jpg" border="0" alt="'.$name.'" />


и соответственно в $_GET['photo'] получите необходимое название файла для уменьшения

   
 
 автор: G-Style   (29.11.2007 в 07:45)   письмо автору
 
   для: Zirkon   (28.11.2007 в 19:35)
 

Я, наверное, сразу не ясно вырозил свои мысли, извините. Дело такое. Изначально это сайт знакомств. Есть функция, в числе принимаемых аргументов, передается имя фотографии, функция выводит циклически анкеты с фото. Фото на гл. странице выводится в мини размере, а если нажать на фото, то тогда можно увидеть реальный размер. Когда я вынес несколько строк в отдельный файл и сделал таким образом - <img src="img.php" />", как было выше сказано, то
функция imagejpeg() не получала в качестве аргумента идентификатор нового изображения. Теперь надо попробавать Ваш способ. Либо придется еще сидеть и что-то придумывать.

   
Rambler's Top100
вверх

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