За последние 24 часа нас посетили 21084 программиста и 1627 роботов. Сейчас ищут 875 программистов ...

Ошибка ImageCreateFrom***

Тема в разделе "Обработка изображений средствами PHP", создана пользователем HAMANN, 27 фев 2011.

  1. HAMANN

    HAMANN Активный пользователь

    С нами с:
    25 июл 2009
    Сообщения:
    24
    Симпатии:
    0
    PHP:
    1.  
    2. <?php
    3.     $size = getimagesize($filename);
    4.  
    5.  
    6.     if ($size['mime'] = "image/gif")
    7.     {$src_img = ImageCreateFromGif($filename) or die('Cannot Initialize new GD image stream');}
    8.     elseif($size['mime'] = "image/jpeg")
    9.     {$src_img = ImageCreateFromJpeg($filename) or die('Cannot Initialize new GD image stream');}
    10.     elseif ($size['mime'] = "image/png")
    11.     {$src_img = ImageCreateFromPng($filename) or die('Cannot Initialize new GD image stream');}
    12.  
    13.     imagecopyresampled($dest_img,
    14.                        $src_img,
    15.                        0,
    16.                        0,
    17.                        0,
    18.                        0,
    19.                        $w,
    20.                        $h,
    21.                        $width,
    22.                        $height);
    23.  
    24.     imagePng($dest_img, $smallimage);
    25.  
    26.  
    27.     imagedestroy($dest_img);
    28.     imagedestroy($src_img);
    29.  
    30. ?>
    31.  
    При этом выводит ошибку
    65-ая строка - {$src_img = ImageCreateFromGif($filename) or die('Cannot Initialize new GD image stream');} т.е. 6-ая в приведенном коде.

    Но прикол получается в том, что я загружаю файл jpg или png, но все равно указывает на ошибку в этой стране.

    Хелп!
     
  2. titch

    titch Активный пользователь

    С нами с:
    18 дек 2010
    Сообщения:
    847
    Симпатии:
    0
    ошибка очевидна. вы не сравниваете mime-type. вы его присваиваете
     
  3. HAMANN

    HAMANN Активный пользователь

    С нами с:
    25 июл 2009
    Сообщения:
    24
    Симпатии:
    0
    Вот я ламер ((

    Спасибо!
     
  4. titch

    titch Активный пользователь

    С нами с:
    18 дек 2010
    Сообщения:
    847
    Симпатии:
    0
    не за что)
     
  5. HAMANN

    HAMANN Активный пользователь

    С нами с:
    25 июл 2009
    Сообщения:
    24
    Симпатии:
    0
    Блин поправил, но теперь следующая проблема:

     
  6. HAMANN

    HAMANN Активный пользователь

    С нами с:
    25 июл 2009
    Сообщения:
    24
    Симпатии:
    0
    На свежую голову с утра все разобрал по каждой строчке и решил вопрос качественно.

    Внимательно посмотрел на все ошибки. И это же элементарно ))

    Warning: imagecopyresampled() expects parameter 1 to be resource, integer given in R:\home\s\admin\modules\add_category_action.php on line 81

    Значит в функцию imagecopyresampled() не передался первый параметр )

    Сейчас самому смешно, что такие ошибки вызывают трудности - нужно всего-то в таких случаях внимательно читать ворнинги и ерроры. И вообще быть внимательным.


    Возник еще один вопрос:

    Изображения png сохраняются на черном фоне - как сделать, чтобы на белом?

    update: сорри, я так понял в этой ветке - это каждый второй вопрос :) Буду изучать, наверняка, ответ уже есть и не один )
     
  7. Апельсин

    Апельсин Активный пользователь

    С нами с:
    20 мар 2010
    Сообщения:
    3.645
    Симпатии:
    2
  8. fgets

    fgets Активный пользователь

    С нами с:
    27 фев 2011
    Сообщения:
    10
    Симпатии:
    0
    PHP:
    1. if (strtok($file['type'], '/') === 'image') {
    2.  
    3.   $ext = str_replace('pjpeg', 'jpeg', strtok('/'));
    4.   $img = 'imagecreatefrom'.$ext;
    5.   $show = 'image'.$ext;
    6.   $im = $img($file['tmpname']);
    7.  
    8.   header ('Content-Type: '.$file['type']);
    9.   $show($im);
    10.   imagedestroy($im);
    11.  
    12. }