Главная страница
    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.051 c
2-1216722230
Анатолий_1987
2008-07-22 14:23
2008.08.24
Trim глючит


15-1215350457
JohnKorsh
2008-07-06 17:20
2008.08.24
Восстановление реестра в XP.


15-1214935991
DVM
2008-07-01 22:13
2008.08.24
А у кого нибудь ICQ работает, но через сторонний клиент?


2-1216280848
programmer90
2008-07-17 11:47
2008.08.24
Командная строка & Delphi


2-1216590932
timekiller
2008-07-21 01:55
2008.08.24
Как выделить строку в TMemo?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский