Come anti-alias un'immagine in Flex?
-
12-09-2019 - |
Domanda
Ho un componente Flex con un'immagine di sfondo. L'immagine è forte all'inizio, ma è frastagliata quando mi scala il componente utilizzando scaleX e scaleY. Come faccio a rendere l'immagine anti-alias in modo che, si è riportata in scala a 0,75, le linee sono liscia, non jaggedy?
Soluzione
Se si carica l'immagine con una componente Immagine, è possibile lanciare la proprietà contenuto del componente a un bitmap e quindi impostare smoothing su true. Purtroppo, la componente dell'immagine non fornisce questa funzionalità out of the box. Tuttavia, è piuttosto facile da hackerare in.
Ecco un tutorial per mostrare come creare un tale componente: http://www.adobe.com/cfusion/ communityengine / index.cfm? evento = ShowDetails & productId = 2 & postId = 4001
Tuttavia, se questo è impostato utilizzando lo stile BackgroundImage di un componente, potrebbe essere solo fuori di fortuna a meno che non si ignora updateDisplayList ed eseguire il disegno della bitmap del corpo utilizzando Graphics.beginBitmapFill (che fornisce il supporto smoothing).
Perché smoothing delle immagini non ha un miglior supporto (come diversi metodi di interpolazione) in Flex (e, successivamente, Flash) vacilla la mia mente. Almeno filtri bender pixel aiuteranno un po ', lasciando a implementare tali filtri stessi.
Altri suggerimenti
Se le dimensioni della bitmap sono sia o n ^ 2 o n ^ 8, poi il Flash Player utilizzerà automaticamente una tecnica chiamata mip-mapping che migliorerà notevolmente l'aspetto (e le prestazioni) di immagini bitmap in scala.