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 » » Графика в PHP » Максимальный размер созданного файла

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

1. Synov_son - 15 Апреля, 2014 - 22:22:26 - перейти к сообщению
Доброго времени суток.

Пытаюсь выяснить какой может быть максимальный объем изображения png, скажем 500х500 с глубиной цвета 8-бит и альфа-каналом. Собираюсь вставлять изображения в заранее созданное примерно так:
PHP:
скопировать код в буфер обмена
  1. $img = imagecreatetruecolor($x,$y);
  2.         imagesavealpha($img, true);
  3.         $alpha = imagecolorallocatealpha($img, 0, 0, 0, 127);
  4.         imagefill($img,0,0,$alpha);
  5.  

Но нужно, что бы результирующий файл не был размером больше заданного. Так возможно ли определить как то максимальный возможный объем ?

Я так понимаю просто посчитать не получиться так, как указано здесь http://www[dot]informatika[dot]edusite[dot]r[dot][dot][dot]ezione10_09i[dot]htm :
Высота*ширину*глубину цвета/8 бит = кол-во в байтах
?
Сжатие используемое png - LZ77 - динамическое ? Может у него есть какой-то минимум, на который он сжимает изображение, скажем 2кб или 0.12112 ?

Может есть хоть какие то статьи на эту тему ?

Благодарю.
2. Zuldek - 16 Апреля, 2014 - 14:18:28 - перейти к сообщению
Есть специфика сохранения изображения каждым из форматов и она будет отличаться, как вы понимаете, даже для каждого конкретного изображения в рамках одного и того же формата (то есть изображение 500х500px в формате jpg может весить в первом случае в 10 раз больше чем во втором).
Задача технически решаема, но, в конечно счете, чтобы создать изображение 500х500 не больше 10кб максимально хорошего качества в формате jpg или Png — такие функции популярных библиотек мне не известны. И они не могут быть, поскольку размер файла изображения становится известен после его фактического создания.

В конечном счете, решение задачи популярными библиотеками возможно (поправьте если ошибаюсь) только перебором нескольких итераций путём фактического создания файла изображения и выбора наиболее подходящего варианта по качеству и размеру.
3. Synov_son - 17 Апреля, 2014 - 16:01:26 - перейти к сообщению
Zuldek пишет:
Есть специфика сохранения изображения каждым из форматов и она будет отличаться, как вы понимаете, даже для каждого конкретного изображения в рамках одного и того же формата (то есть изображение 500х500px в формате jpg может весить в первом случае в 10 раз больше чем во втором).
Задача технически решаема, но, в конечно счете, чтобы создать изображение 500х500 не больше 10кб максимально хорошего качества в формате jpg или Png — такие функции популярных библиотек мне не известны. И они не могут быть, поскольку размер файла изображения становится известен после его фактического создания.

В конечном счете, решение задачи популярными библиотеками возможно (поправьте если ошибаюсь) только перебором нескольких итераций путём фактического создания файла изображения и выбора наиболее подходящего варианта по качеству и размеру.


Да по факту задача у меня в том что бы создать изображение png такого размера что бы оно открылось в браузере как data:uri и соответственно учитывается допустимый вес. Оптимизировать файлы я не доверю коду, мало ли какое качество будет. Вот и думаю сижу какой может быть максимальный вес у png с заданными размерами и глубиной цвета 8 бит.

 

Powered by ExBB FM 1.0 RC1