2010-11-16 37 views
34

Nhìn qua PIL (và liên quan đến this question), tôi có thể lấy danh sách đầy đủ các chế độ Hình ảnh ở đâu? Tôi thấy "RGB", "RGBX", mã của tôi có "BGRX" bằng cách nào đó mặc dù nó không được đề cập trong tài liệu PIL mà tôi có thể nhìn thấy. Làm thế nào tôi có thể xem cái nào, cái gì PIL hỗ trợ, và những chế độ thích hợp nào để chọn khi tương tác với các cuộc gọi API Windows, chẳng hạn?Danh sách Hình ảnh "chế độ"

Về cơ bản tôi biết rất ít về các chế độ hình ảnh và muốn tìm hiểu nhiều hơn chỉ là những chữ cái để đưa vào để làm cho nó kỳ diệu làm việc.

Trả lời

23

Như đã nói trong số Pillow documentation (và như đã nói trong số PIL documentation cũ), bạn cần xem tệp Unpack.c. Bạn sẽ tìm thấy danh sách ở gần cuối tệp.

Unpack.c từ chi nhánh chủ hiện tại của Gối: https://github.com/python-pillow/Pillow/blob/master/src/libImaging/Unpack.c

Unpack.c từ việc phát hành cuối cùng của PIL: http://svn.effbot.org/public/tags/pil-1.1.7/libImaging/Unpack.c

16-bit BGR được liệt kê như "BGR;16" và tạo ra một sản lượng "RGBX".

+0

Tôi thực sự đã quản lý để tìm tệp nhưng không tìm thấy bảng tra cứu đó. – Claudiu

+0

Chết tiệt, cuối cùng tôi đã hiểu được điều gì đó đã khiến tôi lạc lối theo lứa tuổi. Các chế độ được liệt kê trong cột thứ hai của bảng trong 'Unpack.c' không phải là những gì các tài liệu gọi * chế độ * mà là những gì họ gọi * chế độ thô *. Sự khác biệt là * chế độ thô * là loại tệp mà Pillow có thể phân tích cú pháp, trong khi * modes * là các loại tham số 'mode' của các hàm Pillow khác nhau hiểu và bạn có thể chuyển đổi sang sử dụng' .convert() '. Các ý kiến ​​trên bảng được liên kết thừa nhận rõ ràng rằng những điều này không giống nhau, nhưng nó đã đi qua đầu tôi. –

+0

Bây giờ tôi hiểu nó, có vẻ như với tôi rằng câu hỏi này sẽ được hưởng lợi một cách nghiêm túc từ một câu trả lời liên kết tới * cả * https://pillow.readthedocs.io/en/3.0.x/handbook/concepts.html#modes (danh sách * chế độ *) và 'Unpack.c' (danh sách * chế độ thô *) và giải thích sự khác biệt giữa chúng. Mark khác, bạn sẽ sẵn sàng để làm điều này như vậy thông qua một chỉnh sửa? Nếu không, nhưng bạn sẽ thoải mái với tôi làm như vậy, hãy cho tôi biết và tôi sẽ làm quen với nó. Nếu không, tôi có lẽ sẽ chỉ đăng một câu trả lời cạnh tranh. –

Các vấn đề liên quan