有人尝试将heic转换为jpg吗?
我查看了官方存储库,但我不明白它是如何工作的。存储库中的所有示例都可以正常工作。但是当我尝试处理我在 iphone 上制作的照片时,脚本拒绝处理它。
有人尝试将heic转换为jpg吗?
我查看了官方存储库,但我不明白它是如何工作的。存储库中的所有示例都可以正常工作。但是当我尝试处理我在 iphone 上制作的照片时,脚本拒绝处理它。
我最近在使用 libheif 进行转换时遇到了一些运气。所以我做了这个库,它应该会大大简化整个过程
https://github.com/alexcorvi/heic2any
唯一需要注意的是,生成的 PNG/JPG 不保留原始 HEIC 中的任何元数据。
我设法在 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);
});
我正在做的是将heic图片转换为jpg,然后预览它。之后,我将其添加到原始输入中。服务器端会将其视为上传的 jpg。转换时可能会出现一些延迟,因此我在上传时放置了一个加载器 gif。