Créer un tampon d'image à partir des valeurs de pixels rvb

J'ai un tableau d'entiers de pixels RVB qui ressemble à quelque chose comme:

pixels[0] = <rgb-value of pixel(0,0)>
pixels[1] = <rgb-value of pixel(1,0)>
pixels[2] = <rgb-value of pixel(2,0)>
pixels[3] = <rgb-value of pixel(0,1)>
...etc...

Et je suis en train de créer un BufferedImage. J'ai essayé le suivant:

BufferedImage img = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
img.getRaster().setPixels(0, 0, width, height, pixels);

Mais l'image qui en résulte a des problèmes avec les bandes de couleur. L'image n'est pas claire et il y a des diagonales et des lignes horizontales à travers.

Quelle est la bonne méthode pour initialiser l'image avec les valeurs rvb?

EDIT:
Voici ce que mon image ressembleCréer un tampon d'image à partir des valeurs de pixels rvb

grâce,
Jeff

setDataElements(...) fonctionne très bien pour moi. Votre int les valeurs doivent être tort. Publier vos SSCCE montrant le problème.
Je pense que vous avez raison et que mon sous-jacents valeurs de pixel peut-être tort. Je vais regarder cela d'un peu plus et puis après retour.
Ça ressemble à un mauvais alignement des données. Vos pixels 32 bits sont entiers, mais un nombre entier RBG format de 24 bits. Vous devriez essayer de créer un pixel struct avec 3 octets en elle et en passant un tableau de personnes de plus de place.
merci, je vais essayer.
double possible de int tableau de BufferedImage

OriginalL'auteur Jeff Storey | 2011-01-06