Comment puis-je créer un BufferedImage de la matrice contenant les pixels?
- Je obtenir les pixels de BufferedImage
à l'aide de la méthode getRGB()
. Les pixels sont stockés dans le tableau appelé data[]
. Après quelques manipulations sur le tableau de données, j'ai besoin de créer un BufferedImage
de nouveau pour que je puisse le transmettre à un module qui permet d'afficher l'image modifiée, à partir de ce tableau de données, mais je suis coincé avec elle.
OriginalL'auteur Saurabh | 2012-02-22
Vous devez vous connecter pour publier un commentaire.
Puis définissez les pixels de nouveau.
PS: comme indiqué dans les commentaires, merci d'utiliser la réponse de @TacticalCoder
c'est une terrible façon de régler tous les pixels dans une bufferedimage et ne devrait pas être accepté de répondre.
OriginalL'auteur epoch
Notez que cela peut éventuellement être terriblement lent. Si votre BufferedImage prend en charge, vous pouvez utiliser à la place du sous-jacent int[] et directement copier/lire les pixels à partir de là.
Par exemple, pour fastly copie de votre de données[] dans le sous-jacent int[] d'une nouvelle BufferedImage:
Bien sûr, vous voulez vous assurer que votre de données[] contient des pixels dans la même représentation que votre BufferedImage (ARGB dans cet exemple).
Je pense qu'il y a une erreur dans votre code: voulez-vous dire
bi.getRaster
au lieu deres.getRaster
?OriginalL'auteur TacticalCoder
Vous pouvez définir le RVB (int) les valeurs de pixels de l'image à l'aide de la setRGB méthodes.
OriginalL'auteur cdc