使用 php 或 JS 将 HEIC 转换为 JPG

Dmi*_*riy 3 javascript php converter heif

有人试过把 heic 转换成 jpg 吗?

我查看了官方存储库,但我不明白它是如何工作的。存储库中的所有示例都在工作。但是当我尝试处理我在 iphone 上制作的照片时,脚本拒绝处理它。

Mát*_*ger 8

我设法在heic2any js库的帮助下将heic转换为jpg(https://github.com/alexcorvi/heic2any/blob/master/docs/getting-started.md

我在客户端转换了图片,然后将其提供给客户端的输入。服务器看到它,因为它最初是以 jpg 形式上传的。

    function convertHeicToJpg(input)
    {
        var fileName = $(input).val();
        var fileNameExt = fileName.substr(fileName.lastIndexOf('.') + 1);
        if(fileNameExt == "heic") {
            var blob = $(input)[0].files[0]; //ev.target.files[0];
            heic2any({
                blob: blob,
                toType: "image/jpg",
            })
                .then(function (resultBlob) {

                    var url = URL.createObjectURL(resultBlob);
                    $(input).parent().find(".upload-file").css("background-image", "url("+url+")"); //previewing the uploaded picture
                    //adding converted picture to the original <input type="file">
                    let fileInputElement = $(input)[0];
                    let container = new DataTransfer();
                    let file = new File([resultBlob], "heic"+".jpg",{type:"image/jpeg", lastModified:new Date().getTime()});
                    container.items.add(file);

                    fileInputElement.files = container.files;
                    console.log("added");
                })
                .catch(function (x) {
                    console.log(x.code);
                    console.log(x.message);
                });
        }
    }

    $("#input").change(function() {
            convertHeicToJpg(this);

     });
Run Code Online (Sandbox Code Playgroud)

我正在做的是将heic图片转换为jpg,然后预览。之后我将其添加到原始输入中。服务器端会将其视为上传的jpg。转换时可能会出现一些延迟,因此我在上传时放置了加载器 gif。


Ale*_* C. 5

我最近在使用 libheif 进行转换时运气不错。所以我做了这个库,它应该大大简化整个过程

https://github.com/alexcorvi/heic2any

唯一需要注意的是,生成的 PNG/JPG 不会保留原始 HEIC 中的任何元数据。

  • 另一个需要注意的是,它依赖于使用“eval”操作的“emscripten”...(https://github.com/alexcorvi/heic2any/issues/15) (4认同)