.NET 4のCMYKカラースペースを使用して画像にテキストを追加する方法
質問
私は、コアでテキストを画像に追加することを伴うプロジェクトに取り組んでいます。そのため、例として、背景画像(b)と指定されたフォント、ポイントサイズ、フォント(a)のテキスト(a)のいくつかのテキストが一緒に構成されて生成されます。 (c):
最終的な結果は、これらの画像で印刷することです。そのため、背景はCMYKカラー空間を使用しており、プロセス全体をCMYK内に保つ必要があります。 (ノート: 優れた CodeProjectのカラースペースと.NETに関する記事)
私はこれらの画像を一緒に合成するいくつかの異なる方法を試しました:
- System.Drawingは、すべてを暗黙的にRGBに変換します
- System.Windows.Media.Imaging-構成方法なし
- System.XAML/WPF-非常に有望ですが、RenderTargetBitmapはpixelformats.cmyk32では機能しません(argumpedexceptionをスローします)。
価格が高くなり、上昇し続けるように見えるので、私はサードパーティの商業コンポーネントを試したことはありませんでしたが、
- グラフィックミル (2010年12月現在の$ 1800)
- Atalasoft Dotimage (2010年12月現在の3300米ドル)
これは.NET 4で可能ですか?
編集:他の誰かが少し違うことをして、あらゆるフォーマットを変換したいと思うかもしれないからです Windows.System.Media.Imaging
ここに私が使用したコードがあります。
var bitmapConverter = new FormatConvertedBitmap();
bitmapConverter.BeginInit();
bitmapConverter.Source = sourceImage;
bitmapConverter.DestinationFormat = PixelFormats.Cmyk32;
bitmapConverter.EndInit();
上記のコードを明確にするために、画像ソースをCMYK32に変換します(透明性なし)ただし、特定のクラスを使用している場合(つまり、 RenderTargetBitmap
上記のImagesSourceを渡すと、例外がスローされます)。
解決
あなたがそれをよく見たなら、あなたはおそらくこれらのリンクをすでに見たことがあるでしょう。しかし、念のため、ここに私があなたに役立つかもしれないと私が見つけたいくつかのリンクがあります。
ここからのリンクは、.NETでCMYKを使用して作業することについてです。
具体的には、カラープロファイルを使用して言及しています Windows Color Management API。
これが別のSOリンクです:
InDesignでCMYKをプログラムでRGBに変換する方法
1つの回答者は、CMYKとRGBの間に正確な変換がないことに言及しています。
RGBに変換せずに2つのCMYK画像を合成することに関するリンクを次に示します。
応答者は、彼が所属している商用製品を使用することを提案しています。