Faire JPG fond blanc transparent
Je suis le chargement de certaines images et je veux aller de PNG en JPG pour avoir un fichier de plus petite taille. Cependant, comme JPG il n'y a pas de transparence de l'information afin que l'arrière plan de l'image s'affiche en blanc.
Comment puis-je faire de cet arrière-plan blanc transparent une fois que je peux charger mes images?
Merci d'avance
- Vient de créer tous les pixels blancs à transperant dans votre code? Je ne vous conseille pas l'utilisation de blanc bien.
- Double question? stackoverflow.com/q/12598912/2266191 JPEG ne permet pas de transparence.
- Vous devez vous en tenir à des Png dans Flash. Il est effectivement plus rapide pour Flash pour rendre un PNG de un JPG (ce qui semble bizarre étant donné PNG ayant un canal supplémentaire, mais c'est ce que Adobe a dit dans le passé)
- Flash pouvez aussi compresser les png mieux/plus d'JPG résultant dans une plus petite taille de fichier.
- Si votre png sont gros, peut-être que vous êtes en train de faire quelque chose de mal. Êtes-vous essayer d'utiliser un feu d'Artifice indigènes png sans exporter, par exemple?
- Pourriez-vous s'il vous plaît poster référence à votre demande sur PNG vs JPG performance en flash? Un sujet intéressant, mais je n'ai pas pu vérifier par la recherche de moi-même. Désolé OP pour être hors-sujet.
- J'ai fait quelques recherches et je ne pouvais pas trouver une page de mon histoire que l'ont montré (je sais je l'ai vu dans le dernier quelques semaines) ce qui m'amène à croire que c'est en fait dans le ce Adobe Max la vidéo de l'un des SDK Flex devs. Désolé je ne pouvais pas être plus précis, mais je l'ai vu dans de multiples endroits et je me souviens d'un essai d'analyse comparative de l'année dernière qui a appuyé cette déclaration (encore une fois, aucune source :()
- Merci @Apocalyptic0n3 , je vais jeter un oeil à cette vidéo.
Vous devez vous connecter pour publier un commentaire.
Je suis en supposant que vous souhaitez modifier les pixels blancs pour les pixels transparents lors de l'exécution. D'abord je vais juste dire que la MEILLEURE réponse est d'utiliser le format PNG. Mon avis est que de faire quelque chose comme cela au moment de l'exécution n'est pas une bonne solution. Si vous avez que de nombreuses images que la taille du fichier de questions, alors le temps d'exécution du traitement apporte son propre négatif d'une longue pause tandis que le traitement des images.
Personnellement, je vais explorer ce que je pouvais faire pour diminuer la taille des fichiers PNG, et aurait probablement JAMAIS utiliser une solution de ce genre.
Toutefois, si vous choisissez d'aller dans cette voie, ce que vous devez faire est ceci :
Convertir l'image à une occurrence de BitmapData avec un canal alpha.
Boucle à travers le BitmapData et les pixels transparents.
ou
threshold()
méthode BitmapData.Comme quelqu'un l'a mentionné dans les commentaires de votre question, utiliser le blanc comme couleur d'arrière-plan n'est pas une bonne idée que TOUS les pixels blancs seront transparents, pas juste le fond ceux.
Afin de choisir une couleur qui n'est pas dans la palette de l'une de ces images est celle que vous souhaitez utiliser comme arrière-plan de couleur
Comme un intervenant l'a noté, la
threshold()
méthode BitmapData serait sans doute préférable.JPG (Techniquement, JPEG File Interchange Format), tel que compris par les navigateurs les plus courants et les applications graphiques, ne prennent pas en charge le stockage d'un canal alpha avec l'image comme PNG n'. Selon votre application, vous pourriez vouloir stocker séparé noir-et-blanc "image" du fichier, qui est le masque de transparence pour le JPG, et l'utilisation de la paire. Il y a des extensions du format qui peut être utilisé dans les logiciels personnalisés, mais ils ne seront pas comprises par les autres.
Mais d'abord, assurez-vous que le JPG est vraiment ce que vous voulez utiliser. JPG est seulement approprié pour les "photographique" des images, qui n'a généralement pas la transparence des masques (même si il y a bien sûr des exceptions). Si l'image est plus d'Icône/Dessin-like, alors il est probable que JPG ne sera pas beaucoup plus petit que le PNG de toute façon, et ont laides les artéfacts de repliement, il suffit donc de l'optimisation de la PNG vous donne de meilleurs résultats.
Vous souhaitez mai à envisager l'intégration de la png en un Éclair, la bibliothèque, puis de l'exporter en tant que fichier swf. Vous pouvez ensuite utiliser Flash pour compresser vos png à l'aide de la perte algorithme de compression JPEG, mais il sera toujours garder le canal alpha. Cela pourrait entraîner des fichiers de plus petite taille, mais avec l'avantage de garder le canal alpha 8 bits (chaque pixel a 256 niveaux de transparence).
En masquant une couleur spécifique, vous obtiendrez seulement un 1 bit de masque alpha (un pixel est soit entièrement visible ou complètement masqué.) Vous pouvez également rencontrer des problèmes lorsque la couleur de l'image correspond à la couleur de cache, ce qui supprime les pixels de l'image que vous souhaitez afficher.
L'autre problème avec l'aide d'un mat de couleur dans une image JPEG est que la compression JPEG laissera des artefacts, surtout sur les bords de l'objet et la couleur de cache. Cela rend difficile de bien masquer une couleur spécifique.