Question

est mon code pour transformer un octet tableau [] en une image

unsafe
{
  //convert the UInt32[] into byte array and then assign the pointer to it
  fixed (byte* ptr = Misc.ConvertFromUInt32Array(image)) 
  {
    Bitmap bmp = new Bitmap(200,64,800,
      PixelFormat.Format32bppRgb,
      new IntPtr(ptr));
    bmp.Save("test.bmp");
  }
}

Et je reçois ceci:

texte alt http:////img11.imageshack.us/img11 /4853/testacr.png

Où est le problème dans le code, pourquoi cela se produit? Comment le retourner à la normale?

Était-ce utile?

La solution

   bmp.RotateFlip(RotateFlipType.Rotate180FlipX);

Correction du problème:)

Autres conseils

Hey il semble que les deux images que vous ne sont pas liés à posté de quelque façon (en plus un modèle similaire de faux-fuyants). Est-ce que vous postez les mauvais fichiers?

En ce qui concerne la question que vous voyez, je suppose que vous voyez un problème avec l'origine de l'axe x-y. Les images normales et les API graphiques utilisent un axe légèrement bizarre où l'on compte « vers le bas » l'axe y, c'est-à-dire le point (0, 0) est en haut à gauche de l'écran et que vous incrémenter y, vous descendez dans la écran. Par conséquent, il semble raisonnable de supposer que vous avez fait une erreur lors de la conversion ou que les deux images utilisent un système d'axe y différent.

Pourquoi ne pas remplacer tout ce genre de choses dangereuses avec:

private static Bitmap ConvertFromBytes(Byte[] imagebytes)
{
   return new Bitmap(new MemoryStream(imagebytes));
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top