Zuweisen eines ICC-Farbprofils zu einem Bild in C#
-
27-10-2019 - |
Frage
Zusamenfassend:Ich möchte einem Bild ein ICC-Farbprofil zuweisen und es nicht anwenden.
Mehr Info:In meinem Unternehmen müssen wir eine PDF-Datei mit mehreren Ebenen in einer Ebene zusammenführen.Dazu fügen wir die PDF-Seite zu einem Bild zusammen und speichern das Bild dann als PDF.Bei der Erstellung des Bildes geht jedoch das Farbprofil des Bildes verloren.Wenn wir das Farbprofil in C# anwenden, wird das Profil von Device RGB (Standardausgabe von .NET) in das umgewandelt sRGB_IEC61966-2-1_no_black_scaling.icc
Profil.Bei der Transformation verändern sich einige Farben.Anstatt das Farbprofil anzuwenden, müssen wir es zuweisen.Das bedeutet, dass keine Farben umgewandelt werden.
Weiß jemand, wie man das erreicht?Dank im Voraus.
Lösung
Bevor Sie mit der Arbeit an Ihrer Bitmap beginnen (d. h.Bevor Sie mit dem Layout der einzelnen PDF-Komponenten beginnen, stellen Sie sicher, dass auf die Bitmap Ihr Ziel-ICC-Profil angewendet wird.Sie sagen, dass Ihren einzelnen Bildern das erforderliche Profil innewohnt und dieses bei der Transformation verloren geht.Um das Profil beizubehalten, stellen Sie sicher, dass Sie die folgende Lademethode verwenden, die alle Farbprofilinformationen berücksichtigt:
http://msdn.microsoft.com/en-us/library/4sahykhd.aspx
Sie können diese erste Bitmap als Ziel für Ihre Kompositionsarbeit verwenden und sie später exportieren.Es sollte das ursprüngliche ICC-Profil beibehalten.
Alternativ können Sie die FreeImage- oder ImageMagick-Bibliotheken verwenden, um Farbprofile explizit zu verwalten.Beide verfügen über .NET-Wrapper und ermöglichen das Entfernen/Anwenden von ICC-Profildateien:
Image Magick-Befehlszeilenprofiloptionen
Ich hoffe das hilft.