JPG kalitesi nasıl bulunur?


16

Bir JPG dosyasını GIMP ile kaydettiğimde, kaydettiğim kaliteyi 0-100 arasında ayarlayabilirim (89 kullanıyorum). Görünüşe göre bu numaranın kaydedilen dosyada ne olduğunu görmek için bir uygulama kullandım ama yaptım eğer hayatım için ne olduğunu anlayamıyorum. Ne kullanacağınıza dair herhangi bir öneriniz var mı?


2
Sadece bilindiğinden emin olmak için: farklı uygulamaların kalite ayarı genel olarak karşılaştırılabilir değildir: faqs.org/faqs/jpeg-faq/part1/section-5.html . Bununla birlikte, hem GIMP hem de ImageMagick, IJG kalite ölçeğini kullanmalıdır.
Michael Schumacher

Yanıtlar:


22

Kaydettikten sonra kaliteyi artık söyleyemezsiniz.

(Kaliteyi kaydederken ayarlamak, yazılıma ne kadar kayıp kabul ettiğinizi söyler, ancak bir kez kaydedilmiş: kaybedilen şey kaybedilir. Bir şeyin güzel görünüp görünmediğini söylemesi için bir insana ihtiyacınız vardır.)

Hmmm, sanırım yanılmışım. Hala yukarıdaki doğru olduğunu düşünüyorum ama ImageMagick 'in identifybeni yanlış kanıtlıyor?

identify -verbose myimage.jpg

Görüntü: myimage.jpg
  Biçim: JPEG (Birleşik Fotoğraf Uzmanları Grubu JFIF biçimi)
  Sınıf: DirectClass
  Geometri: 358x240 + 0 + 0
  Çözüm: 300x300
  [...]
  Sıkıştırma: JPEG
  Kalite: 90
  Oryantasyon: Tanımsız
  [...]

Testimdeki görüntünün nasıl kaydedildiğini bilmiyorum, ancak herhangi bir EXIF ​​verisi yok. Kalite hala görüntüde saklanabilir mi?


Farklı niteliklere dönüştürmeyi deneyemez misiniz? ImageMagick bazı özel verileri jpg saklamak sürece inanmak zor buluyorum (bu yüzden bu diğer paketlerle çalışmayabilir).
harrymc

İlginç. Bunun nasıl ortaya çıktığını görmek için bekleyeceğim.
Nathaniel

1
+1 Evet imagemagick çalışıyor. Tekrar tekrar jpeg kalitesini değiştirebilir ve değişikliği görmek için tanımlamayı kullanabilirim. Convert (başka bir imagemagick untility) veya MS Photo Editor gibi başka bir araç kullanırsam çalışır.
DaveParillo

1
ImageMagick farklı bir şey yapıyor. Orijinal yazılımınızın ne yaptığını okumak yerine bir tahmin verir. Orijinal, şimdi üstü çizili, cevabınız gerçekten daha doğru. @ Sleske'nin cevabına bakınız.
mattdm

26

Arjan'ın cevabına eklemek için:

ImageMagick'in identifyaslında kodlamak için kullanılan kalite ayarını tahmin etmek için JPEG görüntüsünün içine baktığı görülmektedir.

ImageMagick'in kaynak kodu (özgür yazılım için tezahürat :-)) satırları içerir :

/*
  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, satır 843ff. ImageMagick'in kaynak kodunun son sürümünde).

Gerçekten anlamak için JPEG hakkında yeterli bilmiyorum, ancak bu makalede açıklanan gibi bir şey yapıyor gibi görünüyor:

Visual C # .NET kullanarak JPEG kalite faktörünü belirleyin (Januar 2018'den itibaren bağlantı koptu; 2015'ten archive.org'a kopyalayın )

Yani evet, identifyaslında sadece sıkıştırılmış dosyadan bir JPEG'in kalite ayarını belirleyebilir (sonuç her zaman tam olarak doğru olmayabilir).


1
Vay. Kaynak kodunu kontrol etmeniz çok hoş. Güzel.
Nathaniel

@Nathaniel, lütfen bu cevabı benim yerine kabul edilen cevap olarak seçebilir misiniz? Teşekkürler! (
Benimkisi

Sıkıştırılmış bit akışının nasıl göründüğünü en iyi açıklayan JPEG nicemleme tablosunu arar.
jbarlow

5

Arjan metioned olarak identify -verbose myimage.jpgbunu yapacak. İmagemagick bir CLI aracı olduğundan, komut dosyası oluşturmak için yararlı olabilir. Yaklaşım identify -verbose myimage.jpg | grep ...preety yavaştır. IM'yi böyle kullanmanızı öneririm

identify -format '%Q' myimage.jpg

Çok daha hızlı.


2

JPEGsnoop ImageMagick'in hoş bir alternatifidir identify. İndirme işlemi oldukça küçüktür ve taşınabilir biçimde mevcuttur.

Bir jpg'yi işledikten sonra, DQT işaretinin altında "Yaklaşık kalite faktörü" bulunur.


1

İle ImageMagick ++ kütüphanesinde çok kolay:

Image magick_image( pathname );
size_t compressionFactor = magick_image.quality(); // 0..100

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.