【发布时间】:2017-06-02 23:12:22
【问题描述】:
我有一个 PHP 脚本,如果用户上传的图像文件不是 .png 图像,它将使用 Imagemagick 将其转换为 .png,然后再将其保存到服务器。然而,它只能使用 HTML 表单中的 .tmp 文件,因此它必须在保持 .tmp(及其文件名)完整的同时转换 CONTENTS。到目前为止,这是我的代码:
if (exif_imagetype($tmpName) != IMAGETYPE_PNG) {
$uploadOk = 0; // don't upload later
$im = new Imagick("$tmpName");
$im->setImageFormat( "png" );
file_put_contents($tmpName, '');
file_put_contents(file_get_contents($im), $tmpName);
if (exif_imagetype($tmpName) != IMAGETYPE_PNG) { //check again
// try again or throw error somehow?
} else {
$uploadOk = 1;
}
} else {
$uploadOk = 1;
}
如何正确使用 Imagick 将临时文件的内容转换为原始(非 png)图像的 png 版本?
编辑:也可能是脚本应该可以正常工作,而问题完全不同。目前还不确定。
【问题讨论】:
-
我对问题所在感到困惑。这里的代码是否有效?如果不是,它有什么作用?你希望它做什么?
标签: php imagemagick imagick