c#,从Bitmap图像获取像素信息不会产生所需的结果

ozi*_*jnr 0 c# image bitmap visual-studio

我想得到任何图像,将其转换为位图,将其大小调整为(1024,16)然后获取每个像素的RGB值.

这是我调整大小的功能

public Bitmap Resize(bitmap image1)
{
    Bitmap image2 = new Bitmap(16, 1024);
    Graphics gr = Graphics.FromImage(image2);
    gr.DrawImage(image1,0,0,image2.Height,image2.Width);
    return image2;
}
Run Code Online (Sandbox Code Playgroud)

然后这是我的函数,以获取每个像素的RGB值并将其写入文本文件

for (int y = 0; y < image2.Height; y++)
{
    for (int x = 0; x < image2.Width; x++)
    {         
        Color pixelcolor = image2.GetPixel(x,y);
        byte weR = pixelcolor.R;
        byte weG = pixelcolor.G;
        byte weB = pixelcolor.B;

        sR.WriteLine(weR.ToString());
        sR.WriteLine(weG.ToString());
        sR.WriteLine(weB.ToString());
        sR.WriteLine();
    }
}
Run Code Online (Sandbox Code Playgroud)

但问题是,在循环256次之后,RGB值变为0并且如果像素则不会再次变化.也就是说,它为图像提供正确的RGB值256次,然后一切都变为0.

任何颜色的任何图像都会发生这种情况.

请问我的代码有什么问题?

ser*_*iyb 7

根据https://msdn.microsoft.com/en-us/library/dbsak4dc(v=vs.110).aspx你应该去:

gr.DrawImage(image1,0,0,image2.Width,image2.Height);
Run Code Online (Sandbox Code Playgroud)

gr.DrawImage(image1,0,0,image2.Height,image2.Width);
Run Code Online (Sandbox Code Playgroud)