Всем привет!
Недавно нам пришлось решить еще одну инстересную техническую задачку. Опять же, статья для тех, кому интересны технические подробности нашего сервиса.
Некоторые пользователи жаловались на качество фоток, которые постятся в Инстаграм*. Проблема на самом деле комплексная и причин достаточно большое количество.
Самая банальная причина была в том, что пользователи сами загружали маленькие картинки. В форме постинга они выглядят еще ничего, т.к. там они отображаются маленькими превьюшками. Но Инстаграму* нужны картинки 640х640, поэтому они растягиваются до этого размера. Поэтому, когда фотка уходит в Инстаграм* и они заходят на нее посмотреть, естественно видят замыленное нечто. Проблему решили, добавив предупреждение при добавлении маленьких фоток. Кроме того, добавили возможность увеличить загруженную фотку, кликнув на нее, чтобы сразу было видно ее истинный размер. Вроде больше вопросов не возникало.
Вторая причина - более серьезная. Когда фотка загружается на наш сервер, она сжимается до оптимального размера практически без потери качества. Но когда ты загрузил фотку, а затем обрезал ее во встроенном редакторе, получалось, что ты редактируешь уже сжатую фотку. Как правило чаще всего пользуются функцией обрезки в редакторе. Получалась полная каша - вместо того, чтобы вырезать из оригинала, а потом сжать, всё делалось наоборот. Решили так: теперь фотки загружаются на сервер не сразу, оригинал сохраняется в памяти браузера и редактируется там же. Когда пользователь обрезал, обработал фотки и удовлетворился результатом, он сохраняет пост - и, только после этого, фотки уходят на сервер. Таким образом мы предотвратили потери качества при использовании редактора. Уже загруженные фотки теперь нельзя редактировать, но можно удалить, вновь загрузить оригинал, отредактировать его и сохранить.
Пишите комментарии, ставьте лайки. Нам, разработчикам будет приятно!