Ich habe eine Flex-Komponente mit einem Hintergrundbild. Das Bild ist am Anfang scharf, aber gezackt, wenn ich die Komponente mit scaleX und scaleY skaliere. Wie würde ich das Bild mit Anti-Aliasing versehen, so dass es, wenn es auf 0,75 skaliert wird, glatt und nicht gezackt ist?Wie man ein Bild in Flex anti-alias?
Antwort
Wenn Sie das Bild mit einer Bildkomponente laden, können Sie den Inhalt Eigenschaft der Komponente auf eine Bitmap gegossen und stellen Sie dann auf true zu glätten. Leider bietet die Image-Komponente diese Funktionalität nicht standardmäßig. Allerdings ist es ziemlich einfach, in zu hacken
hier ein Tutorial ist es, Ihnen zu zeigen, wie eine solche Komponente erstellen. http://www.adobe.com/cfusion/communityengine/index.cfm?event=showdetails&productId=2&postId=4001
Wenn dies jedoch der Background Stil einer Komponente festgelegt ist verwenden, können Sie nur könnte Pech gehabt, es sei denn, Sie überschreiben updateDisplayList und führen das Zeichnen der Bitmap selbst aus, indem Sie Graphics.beginBitmapFill verwenden (was Glättungsunterstützung bietet).
Warum Glättung von Bildern nicht besser unterstützt wird (wie z. B. verschiedene Interpolationsmethoden) in Flex (und später, Flash) macht mich verrückt. Zumindest ein Pixel-Bender-Filter wird ein wenig helfen, indem wir solche Filter selbst implementieren.
Wenn die Abmessungen Ihrer Bitmap entweder n^2 oder n^8 sind, verwendet der Flash Player automatisch eine Technik namens mip-mapping, die das Aussehen (und die Leistung) skalierter Bitmap-Bilder erheblich verbessert.
Großartig! Jetzt mache ich einfach eine Schicht, um das backgroundImage loszuwerden. – Aethex