2009-03-02 43 views
5

Tôi đang mờ về mối quan hệ giữa Windows Imaging Component (WIC) và GDI +. Tôi đã làm một số công việc trong quá khứ cho thấy rằng, ví dụ, WIC sản xuất mã hóa GIF trực quan cao cấp, nhưng tôi ngạc nhiên tôi không thấy nhiều người sử dụng nó để xử lý hình ảnh so với GDI +. Tôi biết nó không có các hoạt động vẽ của GDI +, nhưng để mã hóa/giải mã nó có vẻ vượt trội. Vậy tại sao chúng ta không thấy di cư?Mối quan hệ giữa WIC và GDI + là gì?

Trả lời

4

Mối quan hệ (hay đúng là sự khác biệt giữa) WIC và GDI + là WIC là một khung codec hình ảnh mở rộng cho phép các ứng dụng triển khai khung để nhận hỗ trợ cho các định dạng hình ảnh mới thông qua các codec được cung cấp. GDI + là một thành phần cốt lõi của Windows hỗ trợ các thao tác vẽ như dòng, phông chữ, độ dốc, v.v.

Mặc dù GDI + có hỗ trợ riêng cho một số định dạng hình ảnh phổ biến, nhưng vẫn có thể cung cấp codec WIC.

+0

Vì vậy, ngoài một số mã hóa/giải mã gốc, WIC không thực sự làm gì ngoại trừ việc cung cấp một khuôn khổ để viết nhiều mã hơn? Đối với bộ codec gốc cao cấp như vậy (so với GDI +), bạn nghĩ rằng họ đã cung cấp cầu nối tốt hơn giữa GDI + và WIC. –

+1

Tôi đang nghiên cứu thêm một chút, và dường như có nhiều hơn một chút so với điều đó. WIC là một nền tảng của hầu hết những gì WPF làm (xem http://blogs.msdn.com/dwayneneed/archive/2008/06/20/implementing-a-custom-bitmapsource.aspx), và thực sự WIC dường như quản lý pixel giống như GDI +. –

0

Tôi hiểu rằng GDI + sử dụng WIC để thực hiện một số tác vụ nhất định. Ít nhất, trong Windows 7 nó.

Hãy xem xét đoạn mã sau:

image.Write(target, ImageFormat.Gif); 

Khi tôi chạy mã này trong môi trường Windows XP nó sẽ sử dụng bộ mã hóa GDI + Gif để viết hình ảnh làm Gif. Khi tôi chạy cùng một mã trong Windows 7, nó sẽ sử dụng Bộ mã hóa Gif WIC.

+0

không có Image.Write (...) .Bạn có thể có nghĩa là Image.Save (...) –

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