但是一拉深图就只显示上面一部分
byte[] bytt = (byte[])dr["图片"];
MemoryStream ms = new MemoryStream(bytt);
Bitmap MyImage = new Bitmap(Image.FromStream(ms));
pictureBox1.Image = (Image)MyImage;
pictureBox1.ClientSize = new Size(470, 200);pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage;
不用StretchImage倒是没问题,整张图都显示出来了,不过太大了,必须要StretchImage缩放,但是一用StretchImage,图就只显示缩放后的上面部分下面就没有了。

解决方案 »

  1.   

    pictureBox1.ClientSize = new Size(470, 200);大小你都写死了超过部分估计会被截取掉的。
      

  2.   

    这个问题很怪,如果我直接读一个图到pictureBox1,就正常,
    但是从数据库里读二进制出来,只要一用到PictureBoxSizeMode.StretchImage,图就显示不完了,
      

  3.   

    LZ你确定数据库中的图像没问题?我刚测试了一下
    Bitmap MyImage = new Bitmap("D:\\test.jpg");
    pictureBox1.Image = (Image)MyImage;
    pictureBox1.ClientSize = new Size(470, 200);           
    pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage;
    不管用不用StretchImage都没有问题啊。
      

  4.   

    FileStream fs = new FileStream("D:\\funxu\\test\\Tulip.jpg",FileMode.Open);
    byte[] b = new byte[fs.Length];
    fs.Read(b, 0, (int)fs.Length);
    MemoryStream ms = new MemoryStream(b);
    Bitmap MyImage = new Bitmap(Image.FromStream(ms));
    pictureBox1.Image = (Image)MyImage;pictureBox1.ClientSize = new Size(470, 200);
    pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage;
    这样也没问题啊
      

  5.   

    直接用图的确没问题,但是一用从数据库里读出来二进制图显示一用StretchImage就不行了