Загрузить файл изображения: возможно ли сжатие на стороне клиента?


9

При предложении выгрузки файлов фотографий, как правило, пользователь будет иметь сильно сжатые и огромные (10+ мегапикселей) файлы JPEG со своих камер или телефонов. На стороне сервера эти файлы будут повторно сжаты до чего-то вроде 800x600px и качества JPEG 7 или 8.

Возможно ли (уже) сделать это повторное сжатие на стороне клиента? Так что мне нужно было бы передать только около 100 КБ (800x600 пикселей), а не 3 МБ или больше. Что-то вроде:

(1) С новым API-интерфейсом FileSystem javascript ( http://slides.html5rocks.com/#filewriter ) можно будет считывать данные файла фотографии в JS на стороне клиента.

(2) Тогда было бы необходимо перекодировать данные JPEG, что возможно, но я не могу найти никакой библиотеки для этого (пока). Кто-нибудь знает такую ​​библиотеку?

(3) Последним шагом будет отправка повторно сжатых данных JPEG на серверную сторону для хранения и получение URL-адреса сохраненного файла фотографии с сервера для включения в HTML-код клиента.

Я ищу какой-нибудь плагин jQuery, другую библиотеку JS или пример веб-страницы, которая делает это.


Можно ли оптимизировать / сжать изображения перед загрузкой? Вопрос на StackOverflow представляет несколько возможных решений.
danlefree

Ответы:




2

Проверьте это демо: http://makeitsolutions.com/labs/jic

Это библиотека javascript, созданная мной, которая решает эту проблему.

Это позволяет вам сжимать jpg и png на стороне клиента на 100% с помощью javascript и не требует никаких внешних библиотек!

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.