2012-02-17 11 views
6

Kısaca: Bir görüntüye ICC renk profili atamak ve uygulamak istemiyorum.C: C'deki bir görüntüye ICC Renk Profili atama C#

Daha fazla bilgi: Şirketimde birden çok katmanlı bir pdf dosyasını tek bir katman halinde birleştirmemiz gerekiyor. Bunu yapmak için pdf sayfasını bir görüntüye birleştirir ve sonra görüntüyü pdf olarak kaydederiz. Ancak görüntüyü oluşturma sürecinde görüntünün renk profili kaybolur. Renk profilini C# uygulamasında uygularsak profil Cihaz RGB'sinden (varsayılan .NET sürümü) sRGB_IEC61966-2-1_no_black_scaling.icc profiline dönüşür. Dönüşümde bazı renkler değişir. Renk profilini uygulamak yerine onu atamamız gerekiyor. Renklerin dönüştürülmediği anlamına gelir.

Bunu nasıl başaracağını bilen var mı? Şimdiden teşekkürler.

cevap

6

Bitmap'iniz üzerinde çalışmaya başlamadan önce (yani, tek tek PDF bileşenlerinin düzenini başlatmadan önce), bitmap'in hedef ICC profilinizin uygulandığından emin olun. Tek tek resimlerinizin içlerindeki gerekli profile sahip olduğunu ve dönüşümde bu kayıp olduğunu söylüyorsunuz. profil korumak için, herhangi bir renk profil bilgilerinizi saygı aşağıdaki yük yöntemi kullanmak emin olun:

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

Akabinde bunu daha sonra dışa senin kompozisyon çalışmaları için hedef olarak bu ilk bit eşlem kullanabilirsiniz. Orijinal ICC profilini korumalıdır.

Alternatif olarak, renk profillerini açıkça yönetmek için FreeImage veya ImageMagick kitaplıklarını kullanabilirsiniz. Her ikisi de .NET sarmalayıcıları var ve ICC profil dosyalarının uygulamak/sıyırma izin:

Free Image Library

Image Magick Command-Line Profile Options

Image Magick .NET Wrapper

umarım bu yardımcı olur.

+0

PDF sayfasının System.Windows.Image öğesine dönüştürülmesi için Aspose.Pdf.Kit kullanıyorum ve bu işlev renk profilini saklama seçeneği sunmuyor. Ama şu an önerdiğin kütüphanelere bakıyorum. – SynerCoder

+0

Bu (ücretsiz resim kitaplığı) sorduğum sorunu çözdü, ama şimdi başka bir tane var, 17 saat içinde ödül vereceğim. – SynerCoder

+0

@SynerCoder - kütüphanenin yardımcı olması harika. Çok esnek göründüğünden, kendimle daha fazlasını yapmak için anlamı devam ediyorum. Maalesef yeni bir soruna karşı geldiğiniz için üzgünüz :( –