Question

Je cherche un moyen de construire un photoshop comme outil de dessin dans ActionScript 3. En particulier, je veux quelque chose de construction comme les pinceaux dans Photoshop. Alors que vous pouvez utiliser différents PNG est comme un pinceau.

Je l'ai essayé de sauver une brosse dans Photoshop comme un png transparent, l'importer dans mon projet AS3 et un événement de déplacement de la souris, tirer le .png chaque fois que vous déplacez la souris dans un objet BitmapData. Mais cela ne ressemble pas à Photoshop. Voici un exemple, d'abord le dessin de photoshop, le dessin AS3:

text alt

text alt

Dans Photoshop, il semble très lisse, mais en AS3 vous avez que les coins laids et des changements de couleur. Est-ce que quelqu'un sait une solution?

thx, tux

Était-ce utile?

La solution

Pour être plus précis: Vous devriez faire un bitmap temporaire chaque fois qu'un mouseDown est tiré. Sur cela, les pinceaux seront tirés en noir et blanc - cela produira des résultats plus lisses par exemple lorsque vous faites le pinceau emboutie pas plein en alpha. De plus -. Vous devrez utiliser la technique du « marche », comme l'a dit GRAPEFRUKT

Enfin, une fois l'événement mouseUp est tiré, vous devez recolorer le bitmap (pour la couleur de la brosse), peut-être ajouter des filtres si vous voulez et dessiner sur le bitmap principal.

Autres conseils

La réponse est que Flash dessine bitmapData avec transparence alpha pré multiplié. Flash conserve essentiellement la mémoire en arrondissant les pixels presque transparents à une autre valeur. Il est imperceptible à l'œil humain, à moins que vous empilez les images les unes sur les autres et encore. Il en résulte des erreurs d'arrondi de couleur qui ressemblent presque à un bord brûlé de la brosse.

Vous certainement besoin de « marcher » le pinceau entre les positions de la souris comme d'autres l'ont noté, mais que l'habitude de prendre soin de la couleur de décalage qui se produit lorsque vous empilez des images sur le dessus d'un autre.

attirer votre lieu coup de pinceau en un bitmap transparent et teinte que la nouvelle couche de la couleur choisie en utilisant la méthode de colorTransform. Lorsque vous souris vers le haut, tirez cette couche transparente dans votre toile. (Ne pas oublier d'enlever cette couche supplémentaire lorsque vous ne l'utilisez pas!)

Ceci est parce que Photshop « marche » la distance entre les coordonnées de la souris et des peintures aussi. Donc, même si vous vous déplacez votre souris très rapide entre deux points, vous obtiendrez une ligne cohérente.

Vous dessinez une seule fois par jour de la souris, donc si la souris se déplace très rapidement, vous obtiendrez des points au lieu de lignes.

Vous pouvez résoudre ce problème en gardant la trace de la position de la dernière mise à jour de la souris, et si elle est trop loin entre la peinture dans les étapes supplémentaires.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top