Labs

SmoothImage, a smooth Image for FlexSmoothImage, une image lissée pour Flex

Something that could be very frustrating for a Flex developer is the Image component.

In AS3 you can simply smooth an image when resized, in Flex you can’t : this feature was not added to the component, so when the Image is resized it gets pixelated.

This is even more frustrating when you know that the component share the same low level class than the AS3 equivalent.

There’s a solution : extend the component to access the bitmap and activate smoothing while initialization (component init for Embeded images and loading end for loaded ones).

For my own needs, i have done the following “SmoothImage” component using this solution :




	
		


And voila, this is a present.

For your convenience i have built a SWC that you just have to put in your Flex project’s “libs” folder to get a new “SmoothImage” component.

It works exactly like “Image” … with smoothing.

SWC and source code are available on Google code.Une des grosse frustration que peut rencontrer un développeur Flex proviens du composant Image disponible dans le framework.
Comme son nom l’indique ce composant permet d’afficher des images dans vos interfaces de manière simple et intégrée.
Seulement voila, alors qu’en ActionScript 3 pur, on peut choisir de lisser ou non les images lors de leur redimensionnement, il n’en est rien pour le composant Flex, les images apparaissent alors pixélisées.
C’est d’autant plus frustrant que le composant est basé sur la même classe que l’AS3 et que cette feature est donc présente, mais n’est pas activable directemment.
Une solution existe : il suffit d’étendre le composant pour accéder au bitmap et activer le lissage lors de l’initialisation (initialisation du composant pour les images Embed et a la fin du chargement pour les images externes).

Pour mes besoins personnels j’ai exploité cette solution en créant un composant “SmoothImage” dont voici le code :




	
		


Voila c’est cadeau, et pour faire plaisir a tout le monde, j’ai compilé un SWC qu’il suffira de mettre dans le tiroir “libs” de son projet Flex pour disposer d’un nouveau composant “SmoothImage”.
Ce dernier fonctionne exactement comme “Image” … le lissage en plus.

Le SWC et le code source sont disponibles sur Google code.
(héhé je vais pouvoir me commander un NerdMeritBadge OpenSource)


2 Responses to “SmoothImage, a smooth Image for FlexSmoothImage, une image lissée pour Flex

  1. Mauricio says:

    Perfect, thanks.

  2. Gildas Q. says:

    C’est génial,

    Merci pour l’astuce !

Leave a Reply