2009-04-13 2 views
2

это мой код, чтобы превратить байт [] массив в изображениея получаю изображение повернуто в C#

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"); 
    } 
} 

И я получаю это:

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

Где проблема в код, почему это происходит? Как вернуть ее в нормальное русло?

+0

Вы можете иметь только одну картину ... показать обращенную если вы должны выбрать. – ojblass

+0

Что происходит внутри Misc.ConvertFromUInt32Array (изображение)? Может ли проблема не возникать там, а не немного кода, сохраняющего изображение? – Xiaofu

ответ

7
bmp.RotateFlip(RotateFlipType.Rotate180FlipX); 

Исправлена ​​проблема :)

+0

Герой, которого мы заслуживаем – sam

1

Эй, похоже, что два изображения, которые вы разместили, никоим образом не связаны (кроме того, имеют аналогичную картину обфускации). Вы отправили неправильные файлы?

Что касается вопроса, который вы видите, я бы предположил, что вы видите проблему с началом оси x-y. Обычные изображения и графические API используют слегка странную ось, где вы считаете «вниз» ось y, то есть точка (0, 0) находится в верхнем левом углу экрана, и по мере увеличения y вы идете вниз экран. Поэтому представляется разумным предположить, что вы совершили ошибку при преобразовании или что два изображения используют другую схему оси y.

+0

Нет, я так не думаю. Проблема должна быть в строке «bmp». Некоторые люди говорили, что проблема в шагах (параметр должен быть отрицательным), но его не существует. –

+0

В какой строке «bmp» вы говорите? «Stride» находится на одной из строк, содержащей «bmp» –

1

Почему бы не заменить все, что небезопасные вещи с:

private static Bitmap ConvertFromBytes(Byte[] imagebytes) 
{ 
    return new Bitmap(new MemoryStream(imagebytes)); 
} 
+0

Поскольку imageBytes не содержит заголовок растрового изображения. – Samuel

Смежные вопросы