Bitmapa do int [] przy użyciu Marshal.Copy ()

używamMarshal.Copy() skopiować informacje o pikselach zBitmap doint[] tablica, problem polega na tym, że informacje przychodzące do tej tablicy przychodzą źle, jak:

             [0] = -8682109; 
             [1] = -8682109; 
             [2] = -8616573; 
             [3] = -8616573; 
             [4] = -8550527; 
             and so on...

kod metody to:

    private unsafe int[] BmpToBytes_Unsafe(Bitmap bmp)
    {
        BitmapData bData = bmp.LockBits(new Rectangle(new Point(), bmp.Size),
            ImageLockMode.ReadOnly,
            PixelFormat.Format32bppRgb);

        // number of bytes in the bitmap
        byteCount = bData.Stride * (bmp.Height);

        int[] bytes = new int[byteCount / 4];

        Marshal.Copy(bData.Scan0, bytes, 0, byteCount/4);

        // don't forget to unlock the bitmap!!
        bmp.UnlockBits(bData);

        return bytes;

Kiedy korzystałem zbyte[] tablica, informacje, które były przechowywane, były poprawne, więc nie wiem, co się tutaj dzieje.

questionAnswers(2)

yourAnswerToTheQuestion