html5 判断图片 exif,javascript - HTML5 - resize image and keep EXIF in resized image - Stack Overflow...

这个博客介绍了如何在HTML5图像重置过程中使用ExifRestorer.js来恢复图片的EXIF元数据。通过将dataURI转换为Blob,并在Image对象加载完成后进行处理,可以确保在调整图像大小后仍能保留原始的EXIF信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Working solution: ExifRestorer.js

Usage with HTML5 image resize:

function dataURItoBlob(dataURI)

{

var binary = atob(dataURI.split(',')[1]);

var array = [];

for(var i = 0; i < binary.length; i++) {

array.push(binary.charCodeAt(i));

}

return new Blob([new Uint8Array(array)], {type: 'image/jpeg'});

}

And main code, taken as part of HTML5 resizer from this page: https://github.com/josefrichter/resize/blob/master/public/preprocess.js (but slightly modified)

var reader = new FileReader();

//reader.readAsArrayBuffer(file); //load data ... old version

reader.readAsDataURL(file); //load data ... new version

reader.onload = function (event) {

// blob stuff

//var blob = new Blob([event.target.result]); // create blob... old version

var blob = dataURItoBlob(event.target.result); // create blob...new version

window.URL = window.URL || window.webkitURL;

var blobURL = window.URL.createObjectURL(blob); // and get it's URL

// helper Image object

var image = new Image();

image.src = blobURL;

image.onload = function() {

// have to wait till it's loaded

var resized = ResizeImage(image); // send it to canvas

resized = ExifRestorer.restore(event.target.result, resized); //<= EXIF

var newinput = document.createElement("input");

newinput.type = 'hidden';

newinput.name = 'html5_images[]';

newinput.value = resized; // put result from canvas into new hidden input

form.appendChild(newinput);

};

};

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值