Статистика

Участников проекта 105
Опубликовано статей 78
Отчет по карме. Топ 20

Новости блога

1 29.11.2013  Сегодня самым активным участникам newblog'а был выплачен доход с sape.
7 02.11.2012  Ура! Свешилось, нашему сайту дали тИЦ 10. Спасибо всем кто принимает участие в развитии нашего блога.
8 21.08.2012  Интеграция с sape.ru. Теперь каждый автор статей на newblog автоматически зарабатывает на рекламе.
Все новости

Топ 5 категорий

Программирование 46
Операционные системы 9
Базы данных 4
Туризм 2
Заметки 2

Последние 5 заметок (90)

gullyar - Закладки gullyar
gullyar - Ваша первая закладка
osadchaya - Закладки osadchaya
Ira0231188 - Закладки Ira0231188
Ira0231188 - Закладки Ira0231188

Ссылки

www.freedev.asia
Ищешь дешевые диваны, большой выбор диванов.

Как хранить файлы на сайте. Сжатие файлов в форматах jpg, pdf, tif в linux

29.05.2012 23:44 | Просмотров: 4276 | Доход: 105.56 руб. | Комментариев: 2
[Операционные системы] 
Рейтинг: 3/1

При разработке крупных проектов типичной задачей является хранение файлов. Файлы могут быть различных форматов и храниться как в директории так и в самой базе данных. Если эти файлы загружаются пользователями(например документы), то сохранение их в таком виде, в котором они загружаются чаще всего не целесообразно. Если пользователи могут загружать один и тот же файл несколько раз, то естественно нужно делать ссылки, а не дублировать данные. Определить уникальность файла можно с помощью md5 хеша. Сжимать и оптимизировать файлы необходимо сразу при загрузке в систему. Но если при проектировании не предпологалось сжимать файлы и они загружались в систему "как есть"? Естественно прийдется привести в порядок уже имеющиеся файлы о чем и пойдет речь в этой статье.
 
1) JPG:
Казалось бы что можно сделать с уже и так сжатым форматом? Если в систему загружаются скан-копии, то их разрешение может значительно превышать средне статистический размер экрана монитора. К примеру 4283x6713. Как правило достаточно ширины 1024 пикселов. Что значительно сократит размер файла.
mogrify -resize 1024 test.jpg
 
Сканы были загружены в плохом качестве? Стоит ли тогда хранить их без сжатия?
mogrify -quality 80 test.jpg
 
Где параметр "quality" задает качество. 100-оригинал, 1-сильная степень сжатия.
Результат: таким образом файлы по 5мб можно легко сжать в 150-200 кб.
 
2) PDF:
С pdf все просто, сжатие с ухудшением изображений:
 gs -sDEVICE=pdfwrite -dCompatibilityLevel=1 -dPDFSETTINGS=/screen -dNOPAUSE -dQUIET 
-dBATCH -sOutputFile=in.pdf out.pdf
 
Сжатие без изменения качества изображений:
 gs -sDEVICE=pdfwrite -dCompatibilityLevel=1 -dNOPAUSE -dQUIET -dBATCH -sOutputFile=in.pdf out.pdf
 
Результат: таким образом файлы по 5мб можно легко сжать в 1-2мб.
 
3) TIF:
Файлы в формате .tif я бы советовал конвертнуть в jpg:
tiff2rgba -c jpeg in.tif out.jpg
 
Ну и далее обратиться к способу 1
Результат: таким образом файлы по 5мб можно легко сжать в 200-400кб.

© GM
| Комментировать статью |
  • saratan +16 (30.05.2012 19:09)
    эм... замечу тот факт что на говнохостингах не дают юзать консоль из php, да и не факт что там будут установлены mogrify, gs, tiff2rgba. Можно статью о том же самом средствами PHP?
    | Ответить |
    • GM +2587 (31.05.2012 11:50)
      "При разработке крупных проектов" как правило не пользуются "говнохостингом" :) Только средствами php наверное будет сложнее обойтись при сжатии pdf. А для изображений много готовых решений в интернете, например вот это http://sanchiz.net/blog/resizing-images-with-php
      | Ответить |