2012-02-17 21 views
6

Tóm lại: Tôi muốn gán một cấu hình màu ICC cho một hình ảnh và không áp dụng nó.Chỉ định Cấu hình màu ICC cho hình ảnh trong C#

Thông tin thêm: Trong công ty của tôi, chúng tôi cần hợp nhất tệp nhiều lớp pdf thành một lớp. Để làm điều này, chúng tôi hợp nhất trang pdf thành một hình ảnh và sau đó lưu hình ảnh dưới dạng pdf. Nhưng trong quá trình tạo hình ảnh, hồ sơ màu của hình ảnh bị mất. Nếu chúng ta Áp dụng cấu hình màu trong C#, cấu hình sẽ chuyển đổi từ Thiết bị RGB (đầu ra mặc định là .NET) thành cấu hình sRGB_IEC61966-2-1_no_black_scaling.icc. Trong việc chuyển đổi một số màu sắc thay đổi. Thay vì áp dụng cấu hình màu, chúng ta cần gán nó. Có nghĩa là không có màu nào được biến đổi.

Có ai biết cách đạt được điều này không? Cảm ơn trước.

Trả lời

6

Trước khi bạn bắt đầu làm việc trên bitmap của mình (tức là trước khi bạn bắt đầu bố cục các thành phần PDF riêng lẻ), hãy đảm bảo rằng bitmap có hồ sơ ICC mục tiêu của bạn được áp dụng. Bạn nói rằng hình ảnh cá nhân của bạn có hồ sơ yêu cầu được nhúng bên trong chúng, và điều này đang bị mất trong quá trình chuyển đổi. Để giữ lại hồ sơ, đảm bảo rằng bạn sử dụng phương thức tải sau đây, mà tôn trọng bất kỳ thông tin hồ sơ màu:

http://msdn.microsoft.com/en-us/library/4sahykhd.aspx

Bạn có thể sử dụng bitmap đầu tiên này làm mục tiêu cho công việc sáng tác của bạn, sau đó xuất khẩu nó sau này. Nó sẽ giữ lại hồ sơ ICC gốc.

Hoặc, bạn có thể sử dụng thư viện FreeImage hoặc ImageMagick để quản lý cấu hình màu một cách rõ ràng. Cả hai đều có NET giấy gói và cho phép tước/áp dụng các tập tin hồ sơ ICC:

Free Image Library

Image Magick Command-Line Profile Options

Image Magick .NET Wrapper

Tôi hy vọng điều này sẽ giúp.

+0

Tôi đang sử dụng Aspose.Pdf.Kit để chuyển đổi trang PDF thành System.Windows.Image và chức năng đó không cung cấp tùy chọn giữ cấu hình màu. Nhưng tôi hiện đang xem các thư viện bạn đề xuất. – SynerCoder

+0

Điều này (thư viện hình ảnh miễn phí) đã giải quyết được vấn đề tôi đã hỏi, nhưng bây giờ tôi có một cái khác, tôi sẽ trao tiền thưởng trong 17 giờ. – SynerCoder

+0

@SynerCoder - tuyệt vời mà thư viện đã giúp. Tôi giữ ý nghĩa để làm nhiều hơn với nó bản thân mình, vì nó có vẻ rất linh hoạt. Xin lỗi bạn đã đưa ra một vấn đề mới, mặc dù :( –

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