salut,
comment effacer un filtre ajouté sur un BitmapData avec applyFilter ?
merci
salut,
comment effacer un filtre ajouté sur un BitmapData avec applyFilter ?
merci
Le plus grand arbre est né d'une graine menue, une tour de neuf étages est partie d'une poignée de terre.
Mon blog : http://web.codeur.free.fr
salut
lis ça :
DisplacementMapFilter (flash.filters.DisplacementMapFilter)
Object
|
+-flash.filters.BitmapFilter
|
+-flash.filters.DisplacementMapFilter
public class **DisplacementMapFilter**
extends BitmapFilter
La classe DisplacementMapFilter utilise les valeurs de pixels de l’objet BitmapData spécifié (intitulé image de mappage du déplacement) pour déplacer un objet situé sur la scène, telle qu’une occurrence MovieClip. Vous pouvez utiliser ce filtre pour obtenir un effet voilé ou de tacheté sur une occurrence BitmapData ou MovieClip.
L’utilisation de filtres dépend de l’objet auquel vous appliquez le filtre.
Pour appliquer des filtres aux clips lors de l’exécution, utilisez la propriété filters. Lorsque vous définissez la propriété filters d’un objet, celui-ci n’est pas modifié. En outre, vous pouvez l’annuler en supprimant la propriété filters.
Pour appliquer des filtres aux occurrences BitmapData, utilisez la méthode BitmapData.applyFilter(). L’appel applyFilter() sur un objet BitmapData modifie ce dernier et ne peut pas être annulé.
Vous pouvez également appliquer des effets de filtre aux images et aux données vidéo pendant la programmation. Pour plus d’informations, consultez la documentation relative à la programmation.
Si vous appliquez un filtre à un clip ou à un bouton, la propriété cacheAsBitmap du clip ou du bouton est définie sur true. Si vous supprimez tous les filtres, la valeur d’origine de cacheAsBitmap est restaurée.
Le filtre utilise la formule suivante :
dstPixel[x, y] = srcPixel[x + ((componentX(x, y) - 128) * scaleX) / 256, y + ((componentY(x, y) - 128) * scaleY) / 256]
où componentX(x, y) attribue la valeur de couleur componentX de la propriété mapBitmap à (x - mapPoint.x ,y - mapPoint.y).
L’image de mappage utilisée par le filtre est redimensionnée afin de correspondre au redimensionnement de la scène. Elle n’est en aucun cas redimensionnée lorsque l’objet l’est.
Ce filtre supporte le redimensionnement de la scène, mais pas le redimensionnement général, la rotation ni l’inclinaison. Si l’objet lui-même est redimensionné (si l’échelle x et l’échelle yne sont pas à 100 %), l’effet du filtre n’est pas redimensionné. Le redimensionnement est effectué uniquement en cas de zoom avant sur la scène.
Voici comment fonctionne la classe DisplacementMapFilter. Pour chaque pixel (x,y) dans la bitmap de destination, la classe DisplacementMapFilter effectue ce qui suit :
Elle acquiert la couleur de (x,y) dans le mappage de la bitmap
Elle calcule un décalage sur la base de cette couleur
Elle recherche cet emplacement de décalage (x+dx,y+dy) dans la bitmap source
Elle inscrit ce pixel à la destination (x,y), si les conditions de limites le permettent.
Un filtre ne peut s’appliquer si l’image résultante dépasse 2 880 pixels en largeur ou en hauteur. Par exemple, si vous faites un zoom avant sur un grand clip auquel un filtre est appliqué, le filtre est désactivé si l’image résultante dépasse la limite de 2 880 pixels.
Disponibilité : ActionScript 1.0 ; Flash Player 8
et merde
donc je vais etre obligé de vider la mémoire du BitmapData et le re-creer a chaque fois que je vais vouloir effacer un filtre et il ne sera meme pas possible d'effacer un filtre particulier
merci, je n'avais pas encore atteint cette classe et donc sa DOC avec cette info
-----------------------
en re-créeant le tout, ca fonctionne mais demande beaucoup trop du processeur, la bonne idée tombe a l'eau
je rajoute le FLA pour ceux que le systeme peut interesser -> inverser la couleur d'une zone d'une image (la zone ce déplace sur l'image).
je sais que ce genre de chose ce fait avec un masque --> c'est pour apprendre et surtout voir les nouvelles possibilités de F8
Le plus grand arbre est né d'une graine menue, une tour de neuf étages est partie d'une poignée de terre.
Mon blog : http://web.codeur.free.fr
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager