是否有人试图将heic转换为jpg?
我查看了official repository,但我确实理解它是如何工作的。 存储库中的所有示例都有效。但是当我尝试处理我在iphone上制作的照片时,脚本拒绝处理它。
答案 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。