我试图修改exif数据中图像的dpi标题。我知道它可以在原生iOS / Android场景中完成。但是有可能在Javascript中为从Canvas检索的图像做。请建议。感谢
答案 0 :(得分:1)
是的,这是可以接受的,
Exif是二进制数据,因此,您将dpi转换为二进制并将其转换为dataview
您可以使用或查看ExifRestorer.js和exif.js中的代码。 第一个链接用于插入exif数据,第二个链接用于解析exif数据
答案 1 :(得分:1)
在piexifjs中尝试使用canvas样本。
将exif二进制文件插入jpeg。
// make exif data
var zerothIfd = {};
var exifIfd = {};
var gpsIfd = {};
zerothIfd[piexif.ImageIFD.Make] = "Maker Name";
zerothIfd[piexif.ImageIFD.XResolution] = [777, 1];
zerothIfd[piexif.ImageIFD.YResolution] = [777, 1];
zerothIfd[piexif.ImageIFD.Software] = "Piexifjs";
exifIfd[piexif.ExifIFD.DateTimeOriginal] = "2010:10:10 10:10:10";
exifIfd[piexif.ExifIFD.LensMake] = "Lens Maker";
exifIfd[piexif.ExifIFD.Sharpness] = 777;
exifIfd[piexif.ExifIFD.LensSpecification] = [[1, 1], [1, 1], [1, 1], [1, 1]];
gpsIfd[piexif.GPSIFD.GPSVersionID] = [7, 7, 7, 7];
gpsIfd[piexif.GPSIFD.GPSDateStamp] = "1999:99:99 99:99:99";
var exifObj = {"0th":zerothIfd, "Exif":exifIfd, "GPS":gpsIfd};
// get exif binary as "string" type
var exifBytes = piexif.dump(exifObj);
// get JPEG image from canvas
var jpegData = document.getElementById("canvas").toDataURL("image/jpeg", 1.0);
// insert exif binary into JPEG binary(DataURL)
var exifModified = piexif.insert(exifBytes, jpegData);