我尝试拍摄图像(.gif,.jpg或.png),并将其输出为.png
这是我使用的代码:
<?php
$filename = urlencode($_FILES['uploadfile']['name']);
$size = getimagesize($tempname);
switch($size["mime"]){
case "image/jpeg":
$img = imagecreatefromjpeg($tempname); //jpeg file
break;
case "image/gif":
$img = imagecreatefromgif($tempname); //gif file
break;
case "image/png":
$img = imagecreatefrompng($tempname); //png file
break;
default:
die('Unknown filetype');
break;
}
ob_start();
imagepng($img);
$content = ob_get_contents();
ob_end_clean();
?>
问题是当我输入它时,例如: http://i52.tinypic.com/dzglmu.png
输出变为: http://i53.tinypic.com/15fg8w5.png
谁能告诉我这里出了什么问题?
答案 0 :(得分:2)
$size = getimagesize($file);
$mime = $size['mime'];
getimagesize()
返回一个包含4个索引的数组,I.E。:
2索引是图像类型的标志:
1 = GIF,2 = JPG,3 = PNG,4 = SWF,5 = PSD,6 = BMP,7 = TIFF(orden) de bytes intel),8 = TIFF(orden de bytes motorola),9 = JPC,10 = JP2, 11 = JPX,12 = JB2,13 = SWC,14 = IFF,15 = WBMP,16 = XBM。
3索引包含'height =“yyy”width =“xxx”'
我从我链接的手册页中获取了上述摘要,但您可以自己轻松测试,我只是在偷懒。
然后你需要至少添加PNG:
imagealphablending($img, true); // setting alpha blending on
imagesavealpha($img, true); // save alphablending setting
但是请在the manual上查找更完整的示例或谷歌搜索它,因为这些只是建议,您需要调整您需要处理图像的情况。