Як знайти якість JPG?


16

Коли я зберігаю файл JPG за допомогою GIMP, я можу відрегулювати якість, на якому я його зберігаю, від 0-100 (я використовую 89). Здається, я використовував додаток, щоб побачити, що це число було в збереженому файлі, але якщо я це зробив, я не можу за все життя зрозуміти, що це таке. Будь-які пропозиції щодо використання?


2
Просто для того, щоб переконатися, що це відомо: налаштування якості для різних програм не порівнянна, загалом: faqs.org/faqs/jpeg-faq/part1/section-5.html . І GIMP, і ImageMagick повинні використовувати шкалу якості IJG.
Майкл Шумахер

Відповіді:


22

Збережившись, ви вже не можете сказати про якість.

(Встановлення якості під час економії просто говорить програмному забезпеченню, яка втрата ви вважаєте прийнятною, але колись збережена: те, що втрачено, втрачено. Вам знадобиться людина сказати, якщо щось виглядає добре.)

Гммм, я думаю, я помилявся. Я до сих пір думаю , що вище вірно, але ImageMagick «s identifyдоводить мене неправильно?

ідентифікувати -verbose myimage.jpg

Зображення: myimage.jpg
  Формат: JPEG (Формат JFIF спільної фотографічної групи експертів)
  Клас: DirectClass
  Геометрія: 358x240 + 0 + 0
  Роздільна здатність: 300x300
  [...]
  Стиснення: JPEG
  Якість: 90
  Орієнтація: Не визначено
  [...]

Я не знаю, як було збережено зображення в моєму тесті, але воно не має EXIF-даних. Чи може якість зберігатись у зображенні?


Ви не можете експериментувати, перетворюючи різні якості? Мені важко повірити, якщо ImageMagick не зберігає приватні дані в jpg (тому це може не працювати з іншими пакетами).
harrymc

Цікаво. Я зачекаю, щоб побачити, як це каструлі.
Натаніел

1
+1 Так, програма Imagemagick працює. Я можу неодноразово змінювати якість jpeg і використовувати ідентифікатор, щоб побачити зміни. Це працює, якщо я використовую конвертувати (інший imagemagick dokity) або інший інструмент, як MS Photo Editor.
DaveParillo

1
ImageMagick робить щось інше. Він дає оцінку, а не читає те, що зробив ваш оригінальний програмний продукт. Ваша оригінальна, перекреслена відповідь справді правильніша. Дивіться відповідь @ sleske.
mattdm

26

Щоб додати відповідь Аряна:

identifyЗдається, ImageMagick's насправді зазирає у зображення JPEG, щоб вгадати параметр якості, який використовується для його кодування.

Вихідний код ImageMagick (привітання для вільного програмного забезпечення :-)) містить рядки :

/*
  Determine the JPEG compression quality from the quantization tables.
*/
sum=0;
for (i=0; i < NUM_QUANT_TBLS; i++)
{
  if (jpeg_info.quant_tbl_ptrs[i] != NULL)
    for (j=0; j < DCTSIZE2; j++)
      sum+=jpeg_info.quant_tbl_ptrs[i]->quantval[j];

( coders/jpeg.c, рядок 843ff. в моїй останній версії вихідного коду ImageMagick).

Я не знаю достатньо JPEG, щоб дійсно зрозуміти, але, здається, він робить щось на зразок описаного в цій статті:

Визначте коефіцієнт якості JPEG за допомогою Visual C # .NET (посилання загинуло станом на січень 2018; копія на archive.org з 2015 )

Так, так, identifyнасправді можна визначити налаштування якості JPEG лише з одного стисненого файлу (хоча результат може бути не завжди повністю точним).


1
Вау. Дуже приємно з вас перевірити вихідний код. Класно.
Натаніел

@Nathaniel, чи можете ви обрати цю відповідь як прийняту, а не мою? Спасибі! (Я не можу видалити шахту, доки це прийнято.)
Ар'ян

Він шукає таблицю квантування JPEG, яка найкраще відповідає тому, як виглядає стислий бітовий потік.
jbarlow

5

Як Арджан зазначав, identify -verbose myimage.jpgце зробить. Оскільки imagemagick є інструментом CLI, він може бути корисним для сценаріїв. Підхід identify -verbose myimage.jpg | grep ...є дуже повільним. Я рекомендую використовувати такий чат

identify -format '%Q' myimage.jpg

Це масово швидше.


2

JPEGsnoop - це приємна альтернатива ImageMagick identify. Завантаження досить невелика і доступна у портативному форматі.

Після обробки jpg ви знайдете "Приблизний фактор якості" під маркером DQT.



Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.