Bir Görüntünün Boyutunu (Çözünürlüğünü) Bulmak için Python Programı

Bu örnekte, harici kütüphaneler kullanmadan bir jpeg.webp görüntüsünün çözünürlüğünü bulmayı öğreneceksiniz.

Bu örneği anlamak için, aşağıdaki Python programlama konuları hakkında bilgi sahibi olmalısınız:

  • Python İşlevleri
  • Python Kullanıcı Tanımlı İşlevler
  • Python Dosyası G / Ç

JPEG.webp ("jay-peg" olarak telaffuz edilir), Joint Photographic Experts Group anlamına gelir. Görüntü sıkıştırma için en yaygın kullanılan sıkıştırma tekniklerinden biridir.

Dosya biçimlerinin çoğu, dosya hakkında yararlı bilgiler içeren başlıklara (ilk birkaç bayt) sahiptir.

Örneğin, jpeg.webp başlıkları yükseklik, genişlik, renk sayısı (gri tonlama veya RGB) gibi bilgileri içerir. Bu programda, herhangi bir harici kitaplık kullanmadan bu başlıkları okuyan bir jpeg.webp görüntüsünün çözünürlüğünü buluruz.

JPEG.webp Görüntüsünün Bulma Çözünürlüğü Kaynak Kodu

 def jpeg.webp_res(filename): """"This function prints the resolution of the jpeg.webp image file passed into it""" # open image for reading in binary mode with open(filename,'rb') as img_file: # height of image (in 2 bytes) is at 164th position img_file.seek(163) # read the 2 bytes a = img_file.read(2) # calculate height height = (a(0) << 8) + a(1) # next 2 bytes is width a = img_file.read(2) # calculate width width = (a(0) << 8) + a(1) print("The resolution of the image is",width,"x",height) jpeg.webp_res("img1.jpg.webp") 

Çıktı

 Görüntünün çözünürlüğü 280 x 280 

Bu programda görüntüyü ikili modda açtık. Metin olmayan dosyalar bu modda açık olmalıdır. Görüntünün yüksekliği 164. pozisyonda ve ardından görüntünün genişliğindedir. Her ikisi de 2 bayt uzunluğundadır.

Bunun yalnızca JPEG.webp Dosya Değişim Biçimi (JFIF) standardı için geçerli olduğunu unutmayın. Resminiz başka bir standart (EXIF gibi) kullanılarak kodlanmışsa, kod çalışmayacaktır.

2 baytı bitsel kaydırma operatörü << kullanarak bir sayıya dönüştürürüz. Son olarak çözünürlük görüntülenir.

Ilginç makaleler...