解決済み
RasterizeSuiteで高解像度のラスタライズを正しく行う方法について
Illustrator SDKを用いてラスタライズを伴うLiveEffectプラグインの開発を行っています。
現在「ドキュメントのラスタライズ効果設定」を72dpi以上の値に設定したときに、添付画像で説明しているような意図しないビットマップが出力される問題が発生しています。
ラスタライズまでの処理は以下のとおりです。(簡便のために色々省略していますが、ビットマップが取得できるまでは動作していると仮定してください)
// GoLiveEffectメソッド内
// artSetにはmessage->artだけが追加されています
AIRasterizeSettings settings;
settings.type = AIRasterizeType::kRasterizeARGB;
settings.antialiasing = 4;
// この値を300などに変更すると、ラスタライズ効果設定を72dpiにしたときにしたときにメモリを使い切ってクラッシュしてしまう
settings.resolution = (double)72;
settings.ccoptions = AIColorConvertOptions::kForExport;
settings.preserveSpotColors = true;
settings.options =
(AIRasterizeOptions)(AIRasterizeOptions::kRasterizeOptionsUseEffectsRes |
AIRasterizeOptions::kRasterizeOptionsDoLayers);
AIArtHandle rasterArt;
sAIArt->NewArt(AIArtType::kRasterArt, AIPaintOrder::kPlaceAbove, art, &rasterArt);
AIRealRect bounds;
sAIRasterize->ComputeArtBounds(artSet, &bounds, false);
AIRealMatrix sourceMatrix;
sAIRaster->GetRasterMatrix(rasterArt, &sourceMatrix);
// ドキュメントのラスタライズ効果設定で指定されたDPIを算出する
int dpi = baseDpi * (1 / sourceMatrix.a);
std::cout << "dpi: " << dpi << std::endl; // この出力はラスタライズ効果設定と一致しています
message->art = rasterArt;
return kNoErr;
この処理を行った結果、ドキュメントのラスタライズ効果設定に応じて以下のように、
DPIに応じて図形が縮小されたビットマップが出力されてしまいます。
(おそらく300dpiのときは元の図形の0.24倍のサイズになっている)

Illustrator標準のスタイライズ系LiveEffectではこのような問題は発生せず、
オブジェクト輪郭のクッキリ感も維持されているため、何かしらの方法があるかと思います。
オブジェクト輪郭のクッキリ感も維持されているため、何かしらの方法があるかと思います。
なにかご存じの方がいらっしゃいましたらご教示のほど何卒お願いします。
