2009-06-08 7 views
2

私はパスを描く方法を見つけようとしています。 a .png。私はいろいろな形のタイルを持っています(正方形、三角形などはそれぞれNSBezierPathで定義されていますが、単色で塗りつぶすこともできますが、無地の色ではなくビットマップイメージで塗りつぶすこともできます)ココア:NSBezierPathに画像を塗りつぶす

答えて

0

おそらく最も良い選択肢ですが、グラフィックスの文脈を邪魔しないようにするには、NSColor+colorWithPatternImage:クラスメソッドを使用することもできます。これにより、基本的にはカラーを使用する場所でイメージを使用することができます。

+0

良い提案。 "NSColor + colorWithPatternImage:"という意味であれば、マット? + colorWithImageへのドキュメント参照を見つけることができないようですが、何かが見つからない可能性があります。 –

+0

良いキャッチ。私は答えでそれを修正しました。ありがとう。 –

2

私は現在のグラフィックスコンテキストで描画をクリップすることを考えています。Appleは良いdocs on thisです。そこのコードサンプルはすばらしく動作し、Cocoaで設定するグラフィックスコンテキストでかなり効率的な描画を実行する方法の標準的な例ですdrawRect:が呼び出される前に

drawRectが呼び出されると、最終的に描画されるものは、現在のグラフィックスコンテキストのクリッピングパスによって自動的にマスクされます(別名、 :​​)。 addClipは、drawRectが呼び出される前にaddClipメソッドのターゲットとして「ロック」されている現在のグラフィックスコンテキストを変更するために特別に設計されたメソッドです。