Comment flip BufferedImage en java
- Je obtenir RGB24 tableau d'octets et vous voulez le montrer en Java.
public void getByteArray(byte byteArray[]){
int count1 = 0;
byte temp1 = 0;
for (int i = 0; i < byteArray.length; i++) { //The order of RGB24 is red,green and blue.Change the
//order to blue,green and red so that java can use TYPE_3BYTE_BGR to recognize it
if (count1 == 0) {
temp1 = byteArray[i];
count1++;
} else if(count1 == 1) {
//do nothing
count1++;
} else if(count1 == 2) {
byteArray[i - 2] = byteArray[i];
byteArray[i] = temp1;
count1=0;
}
}
image = new BufferedImage(width, height, BufferedImage.TYPE_3BYTE_BGR);
image.getWritableTile(0, 0).setDataElements(0, 0, width, height, byteArray);
mainPanel.repaint();
Cependant,l'effet n'est pas conforme à ma demande et il est étrange.
Comment puis-je retourner le BufferedImage à la direction correcte de ce genre?
Voulez-vous pour faire pivoter l'image de 180 degrés?
Il est difficile de savoir ce que vous demandez. Il y a 3 réponses: 1 vous indiquant la procédure pour retourner l'image, une façon d'inverser les couleurs, et comment appliquer un AffineTransform. Ils sont tous différents, car la question n'est pas claire. Merci de modifier la question pour nous donner plus d'informations à propos de ce que vous essayez d'atteindre.
La Question a été modifié.En fait il n'y a pas de problème avec la couleur de la présentation et je veux juste l'image d'être ce qu'il est vraiment.
Êtes-vous, par hasard, en lisant un BMP? 🙂 Si oui, vous devriez viens de lire chaque ligne de numérisation à partir de de haut en bas, qui est la bonne manière de lire un BMP.
Mais comment convertir le tableau d'octets de l'image dans l'espace de couleur de RGB24 en BMP?
Il est difficile de savoir ce que vous demandez. Il y a 3 réponses: 1 vous indiquant la procédure pour retourner l'image, une façon d'inverser les couleurs, et comment appliquer un AffineTransform. Ils sont tous différents, car la question n'est pas claire. Merci de modifier la question pour nous donner plus d'informations à propos de ce que vous essayez d'atteindre.
La Question a été modifié.En fait il n'y a pas de problème avec la couleur de la présentation et je veux juste l'image d'être ce qu'il est vraiment.
Êtes-vous, par hasard, en lisant un BMP? 🙂 Si oui, vous devriez viens de lire chaque ligne de numérisation à partir de de haut en bas, qui est la bonne manière de lire un BMP.
Mais comment convertir le tableau d'octets de l'image dans l'espace de couleur de RGB24 en BMP?
OriginalL'auteur Gearon | 2014-05-04
Vous devez vous connecter pour publier un commentaire.
Il y a 3 options: (EDIT ->: Au moins, il y ont été 3 options, jusqu'à ce que vous l'avez édité la question <-)
La différence est montré dans cette image:
Basé sur l'image que vous avez posté, je suppose que vous voulez flip l'image verticalement. Cela peut être fait pixel par pixel, ou (quand il doit être fait de manière efficace) avec un
AffineTransformOp
ou directement sur la peinture de l'image à l'aide d'une transforméeGraphics2D
.- Vous m'aider à comprendre ma question plus clairement et la fonction flip vous fournir fonctionne réellement
Que
LookupTable
est un truc intéressant. Merci!OriginalL'auteur Marco13
Vous pouviez retourner l'image, comme ceci:
OriginalL'auteur schmop
Voici le code à retourner l'image à n'importe quel angle
Merci je n'ai pas remarqué cela. Permettez-moi de changer mon poste.
J'aime toujours cet extrait. Je vais mettre en signet. Je ne pense pas que vous devriez les enlever.
OriginalL'auteur Braj
Peut-être que vous pouvez utiliser AffineTransform.
- Vous fournir un exemple de la façon de faire pivoter une image, mais pas sur la façon de retourner une image.Vous pouvez consulter stackoverflow.com/a/23458883/3378204 qui je l'accepte comme la meilleure réponse.
OriginalL'auteur Hirak
Si vous utilisez paintComponent() la méthode de swing.
Avec
Il suffit de retourner le sx1 avec sx2
TADA! De son fait.
Cela pourrait être une bonne référence pour:
la méthode drawImage()
OriginalL'auteur SHA2NK
vous n'avez qu'à tirer les bufferedImage en largeur négatif ou négatif de la hauteur dans la méthode drawImage c'est tout
OriginalL'auteur Jesse