can3p: (Default)

Источник: http://blog.nihilogic.dk/2008/05/compression-using-canvas-and-png.html

Решил повторить технику, посмотреть, насколько это сложно в реализации. Изначально предполагалось, что это может быть способ для кроссдоменного обмена данными, но авторы спецификации оказались умнее меня и все это предусмотрели. Далее интересен вопрос сжатия – у меня получилось, что в любом случае размер получающейся картинки был больше, чем сжатого gzip-ом файла, но тем не менее значительно меньше, чем размер непакованного файла. Если загонять в картинку архив, то на выходе получаем файл большего размера, чем архив.

Например:
163855 jquery.js
45997 jquery.js.gz
63490 jquery.png
46326 jquery.gz.png

Таким образом, это может быть полезно, если нет возможности управлять сжатием скриптов на сервере и при жестких ограничениях (как здесь). Еще так можно хранить пользовательские данные, если нет желания/возможности делать регистрацию – попутно с действиями пользователя генерим картинку, которую он может сохранить и, загрузив, продолжить с того места, где закончил, благо загрузка файлов через File API к ошибкам безопасности не приводит.

Смотреть:
Компрессор на питоне: http://gist.github.com/550578
Декодер на js: http://test.dpetroff.ru/png_loader/ (проверяем наличие jQuery объектов в DOM)
Декодер на js с загрузкой через File API: http://test.dpetroff.ru/png_loader/index2.html (картинку можно взять из предыдущего примера)

P.S. если вы взяли изображения из соседних по теме постов и ничего не получилось, то все дело в разных форматах паковки данных в изображение.


Оригинал: http://blog.dpetroff.ru/tech/store_data_in_png

Profile

can3p: (Default)
can3p

April 2017

S M T W T F S
      1
2 3 45678
9101112131415
16171819202122
23 242526272829
30      

Syndicate

RSS Atom

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jul. 4th, 2025 02:56 am
Powered by Dreamwidth Studios