1

クォーツコンポジションを使用して特定の3Dプロットとサーフェスを描画することに多くの時間と労力を費やしました。私の(Cocoa)アプリケーションのQCViewではすべてが素晴らしく見えます。ただし、印刷するために、QCViewのスナップショットを撮ってNSImageを生成し、それを印刷オプション画面のNSViewに配置しています。ただし、スナップショットの線と色はひどくエイリアス化されているように見えます。QCViewから直接印刷する方法、またはスナップショットの作成をバイパス/オーバーライドして、NSImageがQCViewにあるものと同じように見えるようにする他の方法はありますか?QCViewはNSViewを継承していますが、組み込みの印刷方法が機能していないようです。

ありがとう!

4

2 に答える 2

0

アンチエイリアシングの消去は、アルファ透明度と関係がある可能性があります。コンポジションの最下層として、不透明な黒に設定されたクリアパッチがありますか?(デフォルトでは透明な黒になっているため、ここで問題が発生している可能性があります。)

于 2012-02-29T21:33:15.827 に答える
0

smokrisに感謝しますが、これを行う方法はCGImageスナップショットを撮ることです。このスナップショットをアンチエイリアシングを保持するIKImageViewに配置できると思いましたが、IKImageViewには、印刷が呼び出されたときに印刷ウィンドウに何も表示されないという同じ問題QCViewがあります。

したがって、最終的に機能した方法は、CGPDFContextを使用してCGImageスナップショットからpdfデータを作成し、このpdfデータから生成されたNSImageをNSImageViewにロードすることです。これが印刷ウィンドウに移動すると、すべてのアンチエイリアシングが保持されます。非常に回り道ですが、魅力のように機能します!

于 2012-03-01T22:35:12.333 に答える