2009-06-07 11 views
1

私は背景イメージを持つFlexコンポーネントを持っています。画像は最初はシャープですが、scaleXとscaleYを使用してコンポーネントをスケールするたびにギザギザです。どのように画像をアンチエイリアスにすると、0.75にスケーリングされます。線は滑らかで、ジャギーではありませんか?Flexでイメージのアンチエイリアスを行う方法は?

Here is the image

Here is the scaled version

And the unscaled (good) one

答えて

6

あなたがImageコンポーネントで画像をロードする場合は、ビットマップにコンポーネントのコンテンツプロパティをキャストして、trueにスムージング設定することができます。残念ながら、画像コンポーネントはこの機能をボックスの外に提供しません。しかし、でハックするというのは簡単です

ここでは、そのようなコンポーネントを作成する方法をお見せするためのチュートリアルです:これは、コンポーネントのbackgroundImageスタイルを使用して設定されている場合は、あなただけかもしれない、しかし http://www.adobe.com/cfusion/communityengine/index.cfm?event=showdetails&productId=2&postId=4001

をupdateDisplayListをオーバーライドし、Graphics.beginBitmapFill(スムージングサポートを提供する)を使用して、ビットマップの描画を自分で実行しない限り、不運にならないようにしてください。

Flexで画像のスムージングがサポートされていない(補間方法が異なるなどの)理由が私の心を揺さぶってしまいます。少なくともピクセルベンダフィルタは、私たちがこのようなフィルタを自分で実装することによって少し助けてくれるでしょう。

+0

素晴らしい!今はbackgroundImageを取り除くためにいくつかのレイヤーを作成します。 – Aethex

0

ビットマップのサイズがn^2またはn^8の場合、Flash Playerは自動的に、拡大縮小されたビットマップイメージの外観(およびパフォーマンス)を大幅に改善するmip-mappingというテクニックを使用します。

関連する問題