Chương trình Python để tìm kích thước (độ phân giải) của hình ảnh

Bạn sẽ học cách tìm độ phân giải của ảnh jpeg.webp trong ví dụ này mà không cần sử dụng thư viện bên ngoài

Để hiểu ví dụ này, bạn nên có kiến ​​thức về các chủ đề lập trình Python sau:

  • Các hàm Python
  • Các hàm do người dùng định nghĩa trong Python
  • I / O Tệp Python

JPEG.webp (phát âm là "jay-peg") là viết tắt của Joint Photographic Experts Group. Nó là một trong những kỹ thuật nén được sử dụng rộng rãi nhất để nén hình ảnh.

Hầu hết các định dạng tệp đều có tiêu đề (vài byte đầu tiên) chứa thông tin hữu ích về tệp.

Ví dụ: tiêu đề jpeg.webp chứa thông tin như chiều cao, chiều rộng, số lượng màu (thang độ xám hoặc RGB), v.v. Trong chương trình này, chúng tôi tìm thấy độ phân giải của hình ảnh jpeg.webp đọc các tiêu đề này mà không cần sử dụng bất kỳ thư viện bên ngoài nào.

Mã nguồn tìm độ phân giải của ảnh JPEG.webp

 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") 

Đầu ra

 Độ phân giải của hình ảnh là 280 x 280 

Trong chương trình này, chúng tôi đã mở hình ảnh ở chế độ nhị phân. Các tệp không phải văn bản phải được mở ở chế độ này. Chiều cao của hình ảnh ở vị trí thứ 164, tiếp theo là chiều rộng của hình ảnh. Cả hai đều dài 2 byte.

Lưu ý rằng điều này chỉ đúng với tiêu chuẩn Định dạng trao đổi tệp JPEG.webp (JFIF). Nếu hình ảnh của bạn được mã hóa bằng tiêu chuẩn khác (như EXIF), mã sẽ không hoạt động.

Chúng tôi chuyển đổi 2 byte thành một số bằng cách sử dụng toán tử dịch chuyển bit <<. Cuối cùng, độ phân giải được hiển thị.

thú vị bài viết...