Часть изображения отсутствует в URL-адресе данных

#image #shopify #data-uri #cropit

#изображение #Shopify #data-uri #cropit

Вопрос:

Предыстория приведенной ниже проблемы:

Я использую плагин jQuery Cropit для создания изображения, которое я получаю в форме URL-адреса данных (пользователь загружает изображение, и Cropit позволяет им манипулировать им, когда пользователь доволен, Cropit экспортирует окончательное изображение).

Этот URL-адрес данных прикрепляется к продукту (это веб-сайт Shopify) через Shopify properties (аналогично тому, как вы прикрепили бы текст для продукта с гравировкой), а затем, когда заказ создан, у меня есть приложение, прослушивающее новые заказы, и я извлекаю URL-адрес данных из заказа.

В результате тестирования я могу подтвердить, что URL-адрес данных неверен / поврежден / поврежден на момент размещения заказа и не нарушается при транспортировке.

Оригинальный вопрос

У меня немного странная ситуация, и я не могу найти никаких похожих ситуаций в Интернете.

Мне отправляется изображение в формате URL-адреса данных (из Shopify, если это уместно, я написал частное приложение, и их webhook отправляет мне изображение)

Изображение находится в формате URL-адреса данных, который начинается с, в качестве примера,

 data:image/png;base64,iVBORw0KGgoAAAANSU..... 
  

Проблема, с которой я сталкиваюсь, заключается в том, что иногда (и это, возможно, менее чем в 10% случаев), когда я получаю изображение и пытаюсь его распечатать, в нем отсутствует нижняя часть изображения. В формате PDF изображение считается поврежденным, а в веб-браузере он просто видит нижнюю часть изображения прозрачной, однако многого не хватает.

Вот как это выглядит в элементе проверки в Google Chrome при наведении курсора мыши на URL-адрес изображения (изображение было удалено для анонимности)

введите описание изображения здесь

Мой вопрос в том, кто-нибудь знает, почему?

Мы не можем найти корреляцию с браузером или типом устройства. И я не уверен, связано ли это с тем, что часть URL-адреса данных каким-то образом отсутствует (возможно, ограничение на количество символов, потому что это действительно длинная строка!) или дело в типе изображения. Возможно, что-то пошло не так в процессе загрузки?

Кто-нибудь может пролить свет? Это такая странная проблема, я даже не уверен, что искать в Google!

И просто для подтверждения, изображение обязательно должно быть отправлено в этом формате по целому ряду причин, в основном из-за ограничений Shopify, поэтому я не могу отправить изображение в формате файла.

Комментарии:

1. Что вы видите на вкладке сети браузера, когда это происходит — получаете ли вы код ответа 200?

2. Да, нет сообщения об ошибке или чего-либо еще, и технически изображение отображается, поэтому код ответа равен 200. В нижней части изображения просто есть прозрачные квадраты.

3. Хм, хорошо. Кроме того, dataamp;colon; кажется странной конструкцией — можно ли это сделать неэкранированным, вот так: data: ?

4. Интересно, делает ли браузер его прозрачным, потому что последний бит по какой-то причине искажается. Может быть, написать тестовый скрипт, который извлекает изображение сто раз, чтобы проверить, не повреждено ли какое-либо из них?

5. @halfer да, извините, это данные: — я не заметил, что это было изменено, я думаю, когда я копировал и вставлял материал. Я действительно думал, что это может быть повреждение, например, ненадежное подключение к Интернету или просто что-то пошло не так при передаче, но это происходит довольно часто. Я не знаю, насколько вероятно повреждение URL-адресов данных?