paddy верно, что этот параметр не всегда сохраняется в файле JPEG. Если да, то вы можете использовать identify
от Imagemagick, чтобы прочитать качество. Например:
$ identify -format '%Q' tornado_ok.jpg
93%
Обновление: На основе ответа на этот вопрос https://superuser.com/questions/62730/how-to-find-the-jpg-quality я выяснить, что, видимо, команда identify
все еще может определить от качества путем обратного проектирования таблиц квантования даже если все изображение EXIF / другие метаданные теряются. Кстати, заголовок Ваш вопрос в его нынешнем виде является возможным дубликатом того вопроса, с которым я связан.
Но для меня ваш вопрос имеет свои достоинства, потому что в тексте вопроса вы объясняете, что вы пытаетесь сделать, что более , чем просто определение качества jpeg. Тем не менее, вы должны, возможно, обновить заголовок, если хотите задуматься о том, что вы пытаетесь решить более конкретную проблему, чем просто чтение изображения в формате JPEG.
Если вы не архивируете оригинальные изображения, для использования в сети даже 90% является чрезмерным. 75% были стандартными в прежние времена (деградация была видна только при тесном осмотре между изображениями «бок о бок»), а теперь в дни высокой пропускной способности 85% - это очень качественный вариант. Разница в 5% качества между 90% и 85% практически невидима, но, как правило, сэкономит вам более 30%. Алгоритм JPEG разработан, чтобы начать с устранения информации, которая невидима для восприятия человеком на первых этапах сжатия (выше 80% или около того).
Update/Примечание: Настройки качества сжатия я говорю о являются от тестов с libjpeg, очень широко используемой библиотеки JPEG. Значения компрессии Photoshop и другие настройки качества программного обеспечения - это все независимо и не обязательно означают то же самое, что и настройки libjpeg.Идея
Пэдди использования высоты изображения и ширину изображения, чтобы рассчитать приемлемый размер файла разумно:
Вы можете получить изображение высота/ширина примерно так:
list($originalWidth, $originalHeight) = getimagesize($imageFile);
Мой собственный высоко- качественные фотографии, размещенные в Интернете, например: http://ksathletics.com/2013/wsumbb/nw.jpg обычно сохраняются в соотношении около 200 КБ на мегапиксель.
Так, например, вы можете умножить ширину раз по высоте и делить на 1000000 для вычисления мегапикселей на изображении. Разделите размер файла на 1024 для вычисления KB. Затем разделите полученный KB мегапикселями. Если результат меньше 200 или какое-либо значение, которое вы решаете, тогда вам не нужно его повторно сжимать. В противном случае вы можете повторно сжать его с качеством 85% или любым качеством, которое вы решаете.
Возможный дубликат [ActionScript 3 Read JPEG quality] (http://stackoverflow.com/questions/2511285/actionscript-3-read-jpeg-quality) –