Bitmap类的SetPixel方法包含三个参数
SetPixel(int x, int y, Color color);非常奇怪的是,我使用该方法的时候如果为x 和 y参数指定一个确切的值能够正常运行
但是如果换成相应的变量,则会出现一个 “使用了无效参数”的异常,不知道为什么。代码:
Image img = Image.FromFile("D:\\Web\\test.jpg");
Bitmap bt1 = new Bitmap(img);
Bitmap bt2 = new Bitmap(120, 120);
for (int i = 1; i <= 120; i++)
{
Color currentPixel = bt1.GetPixel(i, i);
bt2.SetPixel(i, i, currentPixel);
}

解决方案 »

  1.   

    D:\\Web\\test.jpg是多少像素的? 是不是小于120阿?
      

  2.   

    对啊,需要判断是否能从源图取得像素吧.
    Image img = Image.FromFile("D:\\Web\\test.jpg");
    Bitmap bt1 = new Bitmap(img);
    Bitmap bt2 = new Bitmap(120, 120);
    for (int i = 1; i <= 120; i++)
    {
                                        if(i<bt1.Height && i<=bt1.Width && i<=bt2.Height && i<=bt2.Width)
                                         {
        Color currentPixel = bt1.GetPixel(i, i);
        bt2.SetPixel(i, i, currentPixel);
                                         }
    }
      

  3.   

    Image img = Image.FromFile("D:\\Web\\test.jpg");
    Bitmap bt1 = new Bitmap(img);
    Bitmap bt2 = new Bitmap(120, 120);
    for (int i = 0; i < 120; i++)
    {
    Color currentPixel = bt1.GetPixel(i, i);
    bt2.SetPixel(i, i, currentPixel);
    }
      

  4.   

    忘了补充上来了
    我也觉得图片的第一象素是从0开始的,因此换了chenyuming2004那种,结果成功了
    呵呵,终于知道怎么截取图片了
    感谢各位!