Je suis en train de créer Bitmap de tableau d'octets en utilisant ce code:Bitmap du tableau d'octets changement
var b = new Bitmap(pervoe, vtoroe, System.Drawing.Imaging.PixelFormat.Format8bppIndexed);
ColorPalette ncp = b.Palette;
for (int i = 0; i < 256; i++)
ncp.Entries[i] = System.Drawing.Color.FromArgb(255, i, i, i);
b.Palette = ncp;
var BoundsRect = new Rectangle(0, 0, Width, Height);
BitmapData bmpData = b.LockBits(BoundsRect,ImageLockMode.WriteOnly,b.PixelFormat);
IntPtr ptr = bmpData.Scan0;
int bytes = (bmpData.Stride)*(b.Height);
var rgbValues = new byte[bytes];
// filling values
Marshal.Copy(rgbValues, 0, ptr, bytes);
b.UnlockBits(bmpData);
return b;
le problème est que quand je reçois l'image de sortie chaque ligne à partir de la première est décalée vers la droite donc l'image entière ne regarde pas bien. Le problème n'est pas dans le rgbValues - J'ai essayé de l'utiliser avec la méthode setPixel et cela fonctionne parfaitement. Toute aide avec classe marshal ou que dois-je faire pour éviter ce déplacement?
Merci !!! alooooooottt c'était la particularité que je ne connaissais pas. Tout fonctionne bien maintenant! – user3556034
De rien. Veuillez accepter (http://stackoverflow.com/help/accepted-answer) la réponse si vous le jugez correct :-) –