Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Проблема вывода изображения
Форумы портала PHP.SU » » Графика в PHP » Проблема вывода изображения

Страниц (1): [1]
 

1. xunicorn - 03 Апреля, 2013 - 13:22:24 - перейти к сообщению
Здравствуйте. Собственно сабж темы.
Есть код на страничке:
CODE (html):
скопировать код в буфер обмена
  1.  
  2. <img src="image.php?src=castles/ShkodaOctaviaTour/Photo-0019.jpg" />
  3.  

и код самого "image.php":
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3.    
  4.     $source       = $_GET['src'];
  5.     $dir          = substr($source, 0, strrpos($source, '/'));
  6.     $filename     = substr($source, strrpos($source, '/') + 1);
  7.     $thumb_source = $dir . '/thumbs/thumb_' . $filename;
  8.     $thumb_exists = file_exists($thumb_img);
  9.  
  10.     $img_source   = $thumb_exists ? $thumb_source : $source;
  11.  
  12.     $dest      = null;
  13.     $image     = null;
  14.     $image_out = null;
  15.     $save_path = '';
  16.  
  17.     $path_info = pathinfo($source);
  18.     switch($path_info['extension'])
  19.     {
  20.         case 'jpg':
  21.         case 'jpeg':
  22.             header('content-type: image/jpeg');
  23.             $image = imagecreatefromjpeg($img_source);
  24.             break;
  25.  
  26.         case 'png':
  27.             header('content-type: image/png');
  28.             $image = imagecreatefrompng($img_source);
  29.             break;
  30.  
  31.         case 'gif':
  32.             header('content-type: image/gif');
  33.             $image = imagecreatefromgif($img_source);
  34.             break;
  35.     }
  36.    
  37.     if(!$thumb_exists)
  38.     {
  39.         $width  = 325;
  40.         $height = 250;
  41.  
  42.         $dest = imagecreatetruecolor($width, $height);
  43.         $image_width = imagesx($image);
  44.         $image_height = imagesy($image);
  45.         imagecopyresized($dest, $image, 0, 0, 0, 0, $width, $height, $image_width, $image_height);
  46.        
  47.         $image_out = $dest;
  48.         $save_path = $thumb_source;
  49.     }
  50.  
  51.     switch($path_info['extension'])
  52.     {
  53.         case 'jpg':
  54.         case 'jpeg':
  55.             imagejpeg($image_out, $save_path);
  56.             break;
  57.  
  58.         case 'png':
  59.             imagepng($image_out, $save_path);
  60.             break;
  61.  
  62.         case 'gif':
  63.             imagegif($image_out, $save_path);
  64.             break;
  65.     }
  66.  
  67. ?>
  68.  


Так вот, логика image.php:
* ищет в папке thumbs тумб картинки;
* если есть - выводит тумб;
* если нет - создает тумб и выводит его;

Тумб - создается, а вывод картинки - нет.

Что я делаю не так? Может кто разъяснить?
2. esterio - 03 Апреля, 2013 - 13:41:29 - перейти к сообщению
xunicorn пишет:
imagejpeg($image_out, $save_path);

Прочтите описание второго параметра хотя-бы етой функции. Здесь не идет вывод в браузер, а сохранение на диск.
(Добавление)
xunicorn пишет:
$image = imagecreatefromgif($img_source);

А здесь создание ресурса. Так что никакого вывода нету.
3. xunicorn - 03 Апреля, 2013 - 15:07:50 - перейти к сообщению
ок, разобрался. Ошибка в синтаксисе.

 

Powered by ExBB FM 1.0 RC1