首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在PHP中用.HEIC将.JPG转换为ImageMagick

在PHP中用.HEIC将.JPG转换为ImageMagick
EN

Stack Overflow用户
提问于 2022-11-10 16:36:42
回答 2查看 106关注 0票数 0

我希望尝试创建一个小型图像转换器,将上传到php文档的HEIC文件转换为.JPG (或任何其他通用文件格式)。

我在unix服务器上运行PHP,并在服务器上安装了ImageMagick。以下命令行代码来自服务器:

代码语言:javascript
运行
复制
mogrify -format jpg *.HEIC

我想把这个命令行代码转换成PHP。

如前所述,我喜欢将命令行格式代码转换为PHP。我现在用一个基本的HTML + PHP表单设置了以下代码。正在转换的文件是新上传的,不在服务器上。如果需要的话,我可以先上传到服务器,然后从服务器文件中读取。

代码语言:javascript
运行
复制
if($_SERVER["REQUEST_METHOD"] == "POST")
{
    if(empty($_FILES['image_url']['name']))
    {
        echo "No File uploaded";
    }
    else{

        $uploadedImage = fopen($_FILES['image_url']['tmp_name'], 'rb');

        $image_to_convert = new Imagick();
        $image_to_convert->readImageFile($uploadedImage);
        $image_to_convert->setFormat("jpg");

        $image_to_convert->setFileName('test.jpg');

        header('Content-Type: image/jpg');
        header('Content-disposition: attachment; filename='.$image_to_convert->getFileName());
        header("Content-Description: File Transfer"); 

        readfile($image_to_convert);
    }
}

这段代码下载了一个"test.jpg“文件,但是当我试图在Windows查看器中打开它时,它会显示一条”看起来我们不支持这个文件格式“的消息。我对PHP比较陌生,所以我不知道输出/输入流的所有技巧,所以如果我的代码很糟糕,请告诉我。

欢迎任何和所有的帮助。谢谢!

EN

回答 2

Stack Overflow用户

发布于 2022-11-11 19:45:31

我认为您需要为您的格式指定'jpeg‘而不是'jpg’。

$image_to_convert->setFormat("jpeg");

票数 0
EN

Stack Overflow用户

发布于 2022-11-21 16:23:59

在我从png和jpeg这样的图像格式改变后,我设法让它正常工作,并将转换后的HEIC映像作为.PDF文件下载。

我还必须先将PDF文件上传(写)到服务器,然后才能通过网站下载(读取)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74392402

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档