0

Windows フォーム アプリケーションで、画像 (CMYK tiff) を開いてテキストを追加し、CMYK tiff 画像に保存しようとしているのですが、Photoshop で出力画像を開くと、RGB 画像でした (色が別の色に見えました)。入力画像)。以下はコードです。助けていただければ幸いです。

Image^ chartImg = Image::FromFile( "user_chart.tif" );      
Graphics^ g = System::Drawing::Graphics::FromImage(chartImg);

String^ drawString = "Test test test test";
System::Drawing::Font^ drawFont = gcnew System::Drawing::Font("Arial", 9);
System::Drawing::SolidBrush^ drawBrush = gcnew             
System::Drawing::SolidBrush(System::Drawing::Color::Black);
float x = 100.0F;
float y = 10.0F;
System::Drawing::StringFormat^ strFormat = gcnew System::Drawing::StringFormat();
g->DrawString(drawString, drawFont, drawBrush, x, y, strFormat);

chartImg->Save("user_chart2.tif", System::Drawing::Imaging::ImageFormat::Tiff);
4

1 に答える 1

0

WinFormsとGDI+では、実行しようとしていることは不可能です。CMYKTIFFを処理するための適切なエンコーダー/デコーダーが含まれていません。

CMYK TIFFを開くときは、RGBに変換し、変更を加えてから、CMYKに戻す必要があります。

CMYK色空間はデバイスに依存するため、LibTIFFとLittleCMSを使用して、CMYK TIFFをバッファーに読み込み、適切なプロファイルを使用してRGBに変換し、テキストを追加して、元に戻す必要があります。これらすべてには、ICCまたはICMプロファイルを使用する必要があります。

CMYK TIFFに直接書き込むコードを記述できますが、C、M、Y、Kデータの「プレーン」に格納されます。

C++とLibTIFF/LittleCMSを使用するソリューションに頼れば、幸運が訪れるでしょう。

おそらく別のオプションは、さまざまな画像エンコーダー/デコーダーで追加の扉を開くと私が信じているWPFですが、私はそれについて専門家ではありません。

于 2009-11-20T21:56:32.320 に答える