CGEffecterおにぎり」カテゴリーアーカイブ

[CGE]v1.06の特定のJpeg表示時の不具合について

色空間がCMYKで記録されてるJPEGを開くと表示がおかしくなる不具合がありましたが修正方法を見つけましたの修正します。

Adobe社のPhotoShopなどで作成できる色空間がCMYKで記録されてるJPEGを開くと表示がおかしくなるのはDelphiに付属しているTJPEGImageではサポートされてないことが原因でした。

当初IE6でも表示が出来ないためサポートしない予定でしたが、少し調べてみたところCMYKでは1ピクセルあたり4バイトであるのに対して、
TJPEGImageでは常にRGBの値が来るというようにしか組まれておらず1ピクセルあたり3バイトのバッファしか提供していませんでした。

そこで、CMYKのJPEGのときは4バイトを読み込み、CMYK→RGB変換を行いRGBの3バイトのを渡す処理を追加しました。

送られたRGBはYCbCrに変換される仕様なので特に後続処理に影響はないと思いますがテストを思いつく限りやっておきます。

また、1つ問題があり、CMYK画像の色合いを完璧には再現できていません。印刷系の知識のある方だとわかるかと思いますが、CMYKはインクの量を記録したものであり、使用するインクによって色が変わります。そこでPhotoShopなどではインクのプロファイルを使用し複雑な計算を行うことで色を変換しております。

つまり今回の修正では、インクプロファイルの参照をしていない、最低限のCMYK→RGB変換ですので実際の色とは誤差が出ています。

一応読取として対応はしましたが出来る限りCMYKのJpegで保存しないことをお勧めいたいします。

[CGE]CGEffecterおにぎりv1.06

長い間お待たせしました。本日Ver 1.06を公開します。

ver 1.05に新機能を1つ、改良を1つ、それといくつかのバグを修正しております。ぜひお試しください!
具体的には下記の通りです。

  • フィルタにKuwaharaを追加
  • オイルペイントで使用色数を選択できるように修正
  • ファイルの保存時に既存ファイルを削除してしまうことがあるバグを修正。
  • ボタン表示位置等の修正