Chương có liên quan của các tài liệu là this one và tôi nghĩ rằng đó là khá rõ ràng: nếu ví dụ bạn muốn giải mã tập tin hình ảnh trong .zap
-format mới, bạn viết một module ZapImagePlugin.py
mà phải thực hiện một vài điều:
- có một số
class ZapImageFile(ImageFile.ImageFile):
với các thuộc tính chuỗi format
và format_description
và móc phương thức def _open(self)
(trong đó sau này);
- ở cấp mô-đun,
Image.register_open('zap', ZapImageFile)
và Image.register_extension('ZAP', '.zap')
Các thông số kỹ thuật đối với phương pháp _open
được đặt rất rõ ràng trong chương - nó phải đọc dữ liệu hình ảnh và siêu dữ liệu từ mở tập tin giống như đối tượng nhị phân self.fp
, nâng cao SyntaxError
(hoặc một ngoại lệ khác) càng sớm càng tốt nếu phát hiện tệp không thực sự ở định dạng phù hợp, hãy đặt ít nhất self.size
và self.mode
thuộc tính và để cho phép đọc hình ảnh, cũng self.tile
, danh sách mô tả gạch một lần nữa forma t được chỉ định trong chương đó (bao gồm cả tập tin bù đắp, mà bạn nói bạn biết, và bộ giải mã - nếu bộ giải mã thô hoặc bit, được ghi trong chương, không đáp ứng nhu cầu của bạn, chương đề nghị nghiên cứu các nguồn của một số của nhiều bộ giải mã được cung cấp, chẳng hạn như JPEG, PNG, v.v.).
Nguồn
2010-02-13 16:18:14
Âm thanh như sử dụng lại mã tốt. Hỏi: Cách tiếp cận của bạn có tạo ra một loại hình ảnh mới và tiện ích mở rộng đang được đăng ký hay không và liệu có điều gì phức tạp về việc thực hiện nó không? – martineau
@martineau: Tôi cần điều này để hoạt động trên luồng nhị phân hiện có, do đó tôi không cố đăng ký bất kỳ thứ gì. Để cụ thể, tôi đã đọc một tệp PNG được nhúng trong một tệp dữ liệu trò chơi. –