1

画面に画像を描画するCIContext方法を使用しています。- (void)drawImage:(CIImage *)im inRect:(CGRect)dest fromRect:(CGRect)srcしかし、ズームイン/ズームアウトメソッドを実装する必要があります。どうすればそれを達成できますか?destアップルのドキュメントには次のように書かれているので、ズームインはrectを増やして達成できると思います。

The image is scaled to fill the destination rectangle.

しかし、ズームアウトはどうですか?dest長方形を縮小すると、画像は実際のサイズで描画されますが、画像の一部(dest長方形に収まる部分)のみが表示されるためです。

何を提案できますか?

4

3 に答える 3

0

私が作ったこの小さなおもちゃのアプリを見てください

これは、CIContext メソッドの NSImage バージョンを示すためのものです。

- (void)drawInRect:(NSRect)dstRect 
          fromRect:(NSRect)srcRect 
         operation:(NSCompositingOperation)op 
          fraction:(CGFloat)delta

四角形が互いにどのように関連しているかを正確に調べるためにこれを行いました。インタラクティブで、スライダーで遊んだり、画像を移動/ズームしたりできます。解決策ではありませんが、問題を解決するのに役立つかもしれません。

于 2013-01-12T22:07:36.853 に答える
0

これを画像のサイズ変更 (ズーム) に使用してみてください。これがお役に立てば幸いです。

于 2013-01-09T09:21:45.020 に答える
0

CIFilter を使用して、描画する前に CIImage のサイズを変更できます。Quartz Composer には、このフィルターを使用する良い例が付属しています。QC で画像サイズ変更フィルターの説明を調べてください。

編集: スケーリングに適したもう 1 つのフィルターは CILanczosScaleTransform です。基本的な使用法を示すスニペットがあります。

于 2013-01-12T19:35:29.380 に答える