Подскажите грамотную проверку на GIF/PNG/JPG, а то когда загружаешь PNG, получаем чёрный фон. PHP: if ($_FILES['filename']['type'] == 'image/gif') { $image_data = imagecreatefromgif($image); } elseif ($_FILES['filename']['type'] == 'image/png') { $image_data = imagecreatefrompng($image); } else { $image_data = imagecreatefromjpeg($image); }
@rs_ssh, вероятно поможет. PHP: 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. <?php $imgPng = imageCreateFromPng($strImagePath); imageAlphaBlending($imgPng, true); imageSaveAlpha($imgPng, true); /* Output image to browser */ header("Content-type: image/png"); imagePng($imgPng); ?> http://php.net/imagecreatefrompng
@rs_ssh, значит решение выше не помогло. А можешь дать ссыль на картинку которая у тебя не обработалась? Решение выше мне помогло. А зачем конвертироовать?
в png обычно прозрачность.. если конвертировать в jpg она потеряется.. в gif чаще всего анимация.. .если в jpg конвертировать - не будет анимации так что не горячись))
Я делаю так: PHP: private function create_from_file($img_file) { $type = exif_imagetype($img_file); $imgNEW = FALSE; switch ($type) { case IMAGETYPE_JPEG: $imgNEW = imagecreatefromjpeg($img_file); break; case IMAGETYPE_PNG: $imgNEW = imagecreatefrompng($img_file); break; case IMAGETYPE_GIF: $imgNEW = imagecreatefromgif($img_file); break; } return $imgNEW; } В Вашем случае ошибка может быть в имени $_FILES['filename'] или $image не содержит путь к файлу