我试图采取一个图片(.gif,.jpg或.png),并且将其输出为.png为什么PHP渲染这个图像不正确?
这是代码使用:
<?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
谁能告诉我怎么回事错在这里?
第二个链接对我说'The Image“http://i53.tinypic.com/15fg8w5.png”无法显示,因为它包含错误。“这是你想表现的吗? – Nobody
在我的浏览器中显示:https://img.skitch.com/20110806-xtth8ysmgc2835t81dj75b7xxa.jpg(这是一张图片截图) – ONOZ
首先清理上传的图片数据,不要依赖mime/type报告由浏览器。这些信息可能是错误的,然后您使用了错误的功能。 – hakre