JPEG (dibaca “jay-peg”) adalah singkatan dari Joint Photographic Experts Group. Ini adalah salah satu teknik kompresi yang paling banyak digunakan untuk kompresi gambar.

Sebagian besar format file memiliki header (beberapa byte awal) yang berisi informasi berguna tentang file tersebut.

Misalnya, header jpeg berisi informasi seperti tinggi, lebar, jumlah warna (skala abu-abu atau RGB), dll. Dalam program ini, kami menemukan resolusi gambar jpeg yang membaca header ini, tanpa menggunakan library eksternal.

Kode Sumber Resolusi Temukan Gambar JPEG

def jpeg_res(filename):
   """"This function prints the resolution of the jpeg 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_res("img1.jpg")

Keluaran

The resolution of the image is 280 x 280

Dalam program ini, kami membuka gambar dalam mode biner. File non-teks harus dibuka dalam mode ini. Tinggi gambar berada pada posisi 164 diikuti dengan lebar gambar. Keduanya memiliki panjang 2 byte.

Perhatikan bahwa ini hanya berlaku untuk standar JPEG File Interchange Format (JFIF). Jika gambar Anda dikodekan menggunakan standar lain (seperti EXIF), kode tidak akan berfungsi.

Kami mengubah 2 byte menjadi angka menggunakan operator pergeseran bitwise <<. Akhirnya, resolusi ditampilkan.