private void pictureBox1_Paint(object sender, PaintEventArgs e)
{
      //原图片宽60 高60
      Image image = new Bitmap("Runner.jpg");      e.Graphics.DrawImage(image, 0, 0, 120, 120); //这里宽高变成120图像会自动缩放就失真了
}
有没有办法宽高不管设为多大。 图像还是显示原来的60 其余多的部分显示白色(只要不自动缩放就行)

解决方案 »

  1.   

    e.Graphics.DrawImage(image, 0, 0, 120, 120); =>e.Graphics.DrawImage(image, 0, 0);
      

  2.   

    PictureBox1.SizeMode = PictureBoxSizeMode.StretchImage
    void Form1_MouseWheel(object sender, MouseEventArgs e)
      {
      var p= pictureBox1.Size;
      p.Width += e.Delta;
      p.Height += e.Delta;
      pictureBox1.Size = p;
      }
    http://topic.csdn.net/u/20081202/10/3eab4c99-486c-49ae-a97b-0005fec656cb.html
      

  3.   

    [Quote=引用 1 楼 wuyazhe 的回复:]e.Graphics.DrawImage(image, 0, 0);
    //这是原图的宽高,不失真我知道,
    问题是 填的是比原图的宽高都要大。 
      

  4.   

    double[,] data = new double[n, n];
    Bitmap imageBitmap = new Bitmap(n, n);
    for (int i = 0; i < n; i++)
    {
      for (int j = 0; j < n; j++)
      {
        data[i,j] = i + j;
      }
    }
    image = graph(n, n, data);
    //此处graph是一个独立的方法,目的是把数组data的值转换成0~255之间的整数,设置为宽和高均为n的imageBitmap的色素值。
    pictureBox1.Image = imageBitmap;
    只有n小于pictureBox1的size,则设定的imageBitmap是多大就以多大输出。然后如二楼所言,可以通过
    PictureBox1.SizeMode = PictureBoxSizeMode.Zoom对图像进行等比例方法,或者用stretchImage对图像拉伸。
    希望对你有帮助。