Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Media";
Текущий архив: 2008.08.24;
Скачать: [xml.tar.bz2];

Вниз

Траблы при получении уровня компресии у JPG-файлов   Найти похожие ветки 

 
leonidus ©   (2007-07-13 22:44) [0]

Делаю так:
 
jpg:=TJpegImage.Create;
jpg.LoadFromFile(path);
jpg_compress:=jpg.CompressionQuality;

так вот какой бы я файл не открыл jpg_compres всегда равен 90, очевидно что это не так, а мне нужно знать точное значение компрессии т.к. я загружаю картинку, обрабатываю ее и сохраняю обратно на диск и при этом важно сохранить с той-же компрессией, но для этого нужно знать исходную компрессию...


 
Sambrook ©   (2007-07-14 13:43) [1]


> так вот какой бы я файл не открыл jpg_compres всегда равен
> 90, очевидно что это не так, а мне нужно знать точное значение
> компрессии

На этот вопрос есть ответ в справке:
This property is not used for reading in files.
Причина простая - формат JPEG не предусматривает хранение данного параметра.


т.к. я загружаю картинку, обрабатываю ее и сохраняю
> обратно на диск и при этом важно сохранить с той-же компрессией,
>  но для этого нужно знать исходную компрессию...

Можете провести простой эксперимент - загрузить jpeg, сохраненный, например, с 70% компресиией и записать его со 100%. Потом сравните размеры двух файлов и сделайте выводы.


 
homm ©   (2007-07-15 15:16) [2]

Сжатие — чисто субъективный параметр, измеряемый в попугаях, у любой программы он может быть свой.


> и при этом важно сохранить с той-же компрессией

Этого не получится никогда. Формат jpg — формат сжатия с потерей качества, при любом следующем пересохранении это качество неизбежно теряется и теряется. Чем меньше пересохранений, тем лучше сохраняется исходное изображение.

Выберете для своих целей другой формат, например PNG.


 
Efir ©   (2007-07-15 15:34) [3]


> Этого не получится никогда.


Не факт, да jpg с потерей качества сжимает, но насколько мне известно при опред. кратности размеров исходного изображения (вроде 16) ухудшения качества после трансформации и сохранения не происходит.


 
homm ©   (2007-07-15 15:55) [4]

> кратности размеров исходного изображения (вроде 16) ухудшения
> качества после трансформации и сохранения не происходит.

8, не 16.

1) Сделал скртншот форума дельфимастер
2) Сохранил в фотошопе для веба с качеством 30 попугаев.
3) Открыл, сохранение.
4) Снова сохранил с теми-же опциями, под други мененм.
5) Открыл второй файл и вставил его как слой в первый.
6) Выбрал режим наложения «разница» (у меня русский фотошоп :)), нашел пиксели не чисто черного цвета
7) Сделал вывод, что прав я :)


 
homm ©   (2007-07-15 16:46) [5]

> други мененм

Вот эта мешанина символов переводится как «другим именем» :)


 
Sapersky   (2007-07-16 13:34) [6]

при опред. кратности размеров исходного изображения (вроде 16) ухудшения качества после трансформации и сохранения не происходит.

Это называется Jpeg lossless transform. Трансформации не произвольные, а только гор./.верт. отражение, поворот на 90/180/270 град., вырезание фрагмента c кратностью размеров 8 или 16 (зависит от типа сжатия jpeg). Потери качества не происходит, потому что операции выполняются над сжатыми данными (которые представляют собой фрагменты 8*8 или 16*8 пикселей) без перепаковки.
Если нужна pas-реализация - ищите библиотеку pasjpeg, но там вырезание с глюком... где-то у меня была исправленная версия...



Страницы: 1 вся ветка

Форум: "Media";
Текущий архив: 2008.08.24;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.06 c
2-1216221664
MikeZ
2008-07-16 19:21
2008.08.24
Hooks: память не может быть read.


15-1213103548
auslogics
2008-06-10 17:12
2008.08.24
требуется программист Delphi


15-1215118235
@!!ex
2008-07-04 00:50
2008.08.24
Узнать алгоритм шифрования.


15-1215265054
NaRuTo
2008-07-05 17:37
2008.08.24
IRC


2-1216710409
Dimich1978
2008-07-22 11:06
2008.08.24
Как открыть в Richedit кодированный rtf





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский