За последние 24 часа нас посетили 20732 программиста и 1106 роботов. Сейчас ищут 356 программистов ...

Проверка на GIF/PNG/JPG

Тема в разделе "Обработка изображений средствами PHP", создана пользователем rs_ssh, 7 сен 2017.

  1. rs_ssh

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

    С нами с:
    18 янв 2014
    Сообщения:
    220
    Симпатии:
    0
    Подскажите грамотную проверку на GIF/PNG/JPG, а то когда загружаешь PNG, получаем чёрный фон.
    PHP:
    1. if ($_FILES['filename']['type'] == 'image/gif')
    2. {
    3.     $image_data = imagecreatefromgif($image);
    4. }
    5. elseif ($_FILES['filename']['type'] == 'image/png')
    6. {
    7.     $image_data = imagecreatefrompng($image);
    8. }
    9. else
    10. {
    11.     $image_data = imagecreatefromjpeg($image);
    12. }
     
  2. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.632
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.
    @rs_ssh, вероятно поможет.
    PHP:
    1. If you're trying to load a translucent png-24 image but are finding an absence of transparency (like it's black), you need to enable alpha channel AND save the setting. I'm new to GD and it took me almost two hours to figure this out.
    2.  
    3. <?php
    4. $imgPng = imageCreateFromPng($strImagePath);
    5. imageAlphaBlending($imgPng, true);
    6. imageSaveAlpha($imgPng, true);
    7.  
    8. /* Output image to browser */
    9. header("Content-type: image/png");
    10. imagePng($imgPng);
    11. ?>
    http://php.net/imagecreatefrompng
     
  3. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.734
    Симпатии:
    1.315
    Адрес:
    Лень
  4. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.632
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.
    @rs_ssh, тебе это помогло?
     
  5. rs_ssh

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

    С нами с:
    18 янв 2014
    Сообщения:
    220
    Симпатии:
    0
    Пробую найти решение чтобы в конечном итоге PNG/GIF конвертировались в JPG.
     
  6. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.632
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.
    @rs_ssh, значит решение выше не помогло. А можешь дать ссыль на картинку которая у тебя не обработалась?

    Решение выше мне помогло.

    А зачем конвертироовать?
     
  7. Алекс8

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

    С нами с:
    18 май 2017
    Сообщения:
    1.730
    Симпатии:
    359
    в png обычно прозрачность.. если конвертировать в jpg она потеряется..
    в gif чаще всего анимация.. .если в jpg конвертировать - не будет анимации
    так что не горячись))
     
  8. Maputo

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

    С нами с:
    30 июл 2015
    Сообщения:
    1.136
    Симпатии:
    173
    Я делаю так:
    PHP:
    1. private function create_from_file($img_file)
    2.     {
    3.         $type = exif_imagetype($img_file);
    4.         $imgNEW = FALSE;
    5.         switch ($type) {
    6.             case IMAGETYPE_JPEG:
    7.                 $imgNEW = imagecreatefromjpeg($img_file);
    8.                 break;
    9.             case IMAGETYPE_PNG:
    10.                 $imgNEW = imagecreatefrompng($img_file);
    11.                 break;
    12.             case IMAGETYPE_GIF:
    13.                 $imgNEW = imagecreatefromgif($img_file);
    14.                 break;
    15.         }
    16.         return $imgNEW;
    17.     }
    В Вашем случае ошибка может быть в имени $_FILES['filename'] или $image не содержит путь к файлу