Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Склеивание файлов
Форумы портала PHP.SU » » Работа с файловой системой и файлами » Склеивание файлов

Страниц (1): [1]
 

1. Synov_son - 15 Апреля, 2014 - 17:59:56 - перейти к сообщению
Доброго времени суток, подскажите, пожалуйста, насколько возможно уменьшение веса картинки при их склеивании.
Собираюсь объединять картинки вместе, но только если вес результата не превысит максимально разрешимый вес.
Правильно будет ли так ?
PHP:
скопировать код в буфер обмена
  1.  
  2. if((filesize($image1)+filesize($image2)) > $max_size){
  3. //склеиваем
  4. }
  5.  


П.С. - При склеивании буду: брать картинки - imagecreatefrompng, создавать новую - imagecreatetruecolor (с прозрачностью - imagesavealpha, imagecolorallocatealpha, imagefill), копировать картинки в новую - imagecopy.

Спасибо
2. OrmaJever - 15 Апреля, 2014 - 18:09:46 - перейти к сообщению
Synov_son пишет:
Правильно будет ли так ?

нет конечно, вы же не просто текст копируете. У каждого формата есть свои заголовки, системные байты и прочее, поэтому после склеивания 1кб и 1кб картинок в итоге будет меньше 2кб, на соклько это уже зависит от формата.
3. Synov_son - 15 Апреля, 2014 - 18:14:03 - перейти к сообщению
OrmaJever пишет:
после склеивания 1кб и 1кб картинок в итоге будет меньше 2кб


Ну я и рассчитываю на то что б меньше, но возможно ли что будет больше (при форматах jpg, jpeg, png, gif) ?

Просто думаю нету какого либо способа проверить на сколько уменьшиться размер
4. Мелкий - 15 Апреля, 2014 - 18:58:19 - перейти к сообщению
Synov_son пишет:
но возможно ли что будет больше (при форматах jpg, jpeg, png, gif) ?

Возможно.
Во-первых, сам gd - штука тупая и запросто может поломать оптимизации, сделанные в исходном файле. (тупо переключить png из индексированных цветов в полноцветовую палитру - для мелких изображений разница может быть огромной)
Во-вторых, те же gif и png8 могут распухнуть в размере при добавлении лишних цветов.
В-третьих, алгоритмы сжатия, используемые под капотом этих форматов могут дать совершенно другие результаты.
5. IllusionMH - 15 Апреля, 2014 - 19:19:00 - перейти к сообщению
Synov_son, зависит от формата иповторяемости изображения и прочего. Автоматическая склейка спокойно может получиться в итоге больше и/или хуже по качеству.

Проверить можно только глянув на размер конечного изображения и сравнив с суммой начальных.
6. Synov_son - 15 Апреля, 2014 - 20:29:01 - перейти к сообщению
Нашел статью http://www[dot]informatika[dot]edusite[dot]r[dot][dot][dot]ezione10_09i[dot]htm , которая мне осветила основы того как идет подсчет размера графического файла, буду с помощью getimagesize(-fromstring) брать размеры и глубину цвета и осталось найти как создавать картинку с заданной глубиной цвета и учитывать формат (пока не разобрался как?), что бы не полетело ничего.

 

Powered by ExBB FM 1.0 RC1