Как удалить EXIF-данные из изображения с помощью javascript?
Я читаю в файле из ввода HTML файла. Для iOS я могу сделать снимок с камеры. Проблема в том, что если вы сделаете снимок с камерой, содержимое будет содержать данные EXIF (по крайней мере, если я прочитаю содержимое файла с помощью API FileReader).
Я не могу использовать обрезку холста, если изображение содержит данные EXIF. Потому как изображение будет уничтожено каждый раз, когда я вызываю .toDataURL()
. Мое предположение он не распознает данные EXIF и не знает, как обрезать изображение с помощью EXIF.
Содержимое файла base64 кодируется FileReader.readAsDataURL()
. И я вставляю его в img.src.
Обрезка выполняется путем рисования нового изображения с помощью ctx.drawImage(...)
, основанного на старом изображении и я наконец получил новые данные изображения с помощью c.toDataURL()
.
Итак, мой вопрос: как удалить данные EXIF с помощью javascript?
Ответы
Ответ 1
Отметьте, что вы писали:
изображение уничтожается
Я думаю, что проблема не в данных EXIF. Я думаю, что у вас есть ограничение canvas iOS:
Максимальный размер элемента холста - 3 мегапикселя для устройств с менее 256 МБ ОЗУ и 5 мегапикселей для устройств с большим или равной 256 МБ ОЗУ.
Эти ограничения не вызывают никаких ошибок, поэтому вы попытаетесь отобразить или прочитать 6MB-изображение, вы получите сломанную строку blob/dataURL и так далее. И вы подумаете, что File API сломан, методы canvas toDataURL/toBlob нарушены, и вы будете правы. Но ошибки не в браузере, это системное ограничение.
Известные библиотеки, которые фиксируют ограничения iOS: