PHP imagecreate()PNG是否来自任何常用的文件格式?
我目前有一个图像上传输入,只接受PNG,JPG/JPEG,GIF图像。 如果该文件有效,它将继续使用从图像创建缩略图PHP imagecreate()PNG是否来自任何常用的文件格式?,php,image,forms,imagecreatefrompng,Php,Image,Forms,Imagecreatefrompng,我目前有一个图像上传输入,只接受PNG,JPG/JPEG,GIF图像。 如果该文件有效,它将继续使用从图像创建缩略图 imagecreatefrompng() imagecopy() imagejpg() 这很好,但显然只适用于png图像 除了使用提交的正确文件格式外,使用“imagecreatefrompng()”最合理、最有效的方法是什么?我所能想到的就是if/else使用多个“imagecreatefrom_ux0;()”,但这似乎并不正确 此外,无论提交了什么,我的输出格式如何始终是P
imagecreatefrompng()
imagecopy()
imagejpg()
这很好,但显然只适用于png图像
除了使用提交的正确文件格式外,使用“imagecreatefrompng()”最合理、最有效的方法是什么?我所能想到的就是if/else使用多个“imagecreatefrom_ux0;()”,但这似乎并不正确
此外,无论提交了什么,我的输出格式如何始终是PNG,而不是我现在拥有的当前图像jpg()。您必须使用一个开关并确定图像类型,如下所示:
$extension = strtolower(strrchr($file, '.'));
switch ($extension) {
case '.jpg':
case '.jpeg':
$img = @imagecreatefromjpeg($file);
break;
case '.gif':
$img = @imagecreatefromgif($file);
break;
case '.png':
$img = @imagecreatefrompng($file);
break;
default:
$img = false;
break;
}
-编辑-没有看到问题的第二部分,您只需使用imagepng将其保存为PNG即可,无需执行任何其他操作。使用$filename))
将是此处的延迟选项
如果您总是想要一个png输出,那么只需交换
imagejpg
即可。图像一旦被GD加载,就以完全相同的格式存储在内部。只有在加载和保存时,您才必须选择适当的文件类型,并且也可以保存到任何其他文件类型。