3 votes

Conversion d'un tableau de pixels en une image en C#

J'ai un tableau de int pixels dans mon programme C# et je veux le convertir en une image. Le problème est que je convertis le code source Java d'un programme en code C# équivalent. En Java, la ligne se lit comme suit : "affiche le tableau de pixels int dans une image" :

Image output = createImage(new MemoryImageSource(width, height, orig, 0, width));

Quelqu'un peut-il me dire quel est l'équivalent en C# ?

Ici, orig est le tableau de int pixels. J'ai cherché dans la classe Bitmap et il y a une méthode appelée SetPixel mais le problème est qu'il faut un numéro de coordonnées x,y. Mais ce que j'ai dans mon code est un tableau de int pixels. Une autre chose étrange est que mon tableau d'origine a des nombres négatifs et qu'ils sont très éloignés de 255. En Java, c'est le même cas (ce qui signifie que les tableaux en C# et en Java ont des valeurs équivalentes) et les valeurs fonctionnent bien en Java.

Mais je n'arrive pas à traduire cette ligne en C#. Merci de m'aider.

0voto

tafa Points 3097

MemoryImageSource Le troisième argument du constructeur de 's est un tableau d'ints composé des valeurs de argb dans cet ordre

L'exemple de cette page crée un tel tableau en ;

pix[index++] = (255 << 24) | (red << 16) | blue;

Vous devez décomposer ce tableau d'entiers en un tableau d'octets (l'opérateur shift serait utile), mais il doit être dans l'ordre bgr, pour que la méthode LockBits fonctionne.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X