使用php或JS将HEIC转换为JPG

时间:2017-10-15 11:49:49

标签: javascript php converter heif

是否有人试图将heic转换为jpg?

我查看了official repository,但我确实理解它是如何工作的。 存储库中的所有示例都有效。但是当我尝试处理我在iphone上制作的照片时,脚本拒绝处理它。

3 个答案:

答案 0 :(得分:1)

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

我在客户端转换了图片,然后将其提供给客户端的输入。 服务器看到它,因为它最初以 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);

     });

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

答案 1 :(得分:0)

最近使用libheif进行转换时我很幸运。所以我做了这个库,应该可以大大简化整个过程

https://github.com/alexcorvi/heic2any

唯一的警告是,生成的PNG / JPG不保留原始HEIC中的任何元数据。

答案 2 :(得分:0)

使用在线转换器,例如https://www.jpgheic.com/。或者,如果您想使用某些API,则可以使用https://www.online-convert.com/中的API。