新手一枚,做了一个简单的打开按钮,打开了一幅图像,想在加载图片的picturebox上,自由缩放图片,不知道怎样写代码,要先定义图片的高和宽么?

解决方案 »

  1.   

    Image img = Image.FromFile(@"c:\a.jpg");Bitmap bmp = new Bitmap(img, 100, 100); //缩放后的宽度为100,高度为80,你根据实际缩放来写
    pictureBox1.Image = bmp;
      

  2.   

    Image img = Image.FromFile(@"c:\a.jpg");
    Bitmap bmp = new Bitmap(img, 100, 80); //缩放后的宽度为100,高度为80,你根据实际缩放来写
    img.Dispose();
    pictureBox1.Image = bmp;
      

  3.   

            private void toolStripLabel3_Click(object sender, EventArgs e)
            {
                Image img = Image.FromFile(openFile.FileName);
                Bitmap bmp = new Bitmap(img,Width*2,Height*2); 
                img.Dispose();
                pictureBox1.Image = bmp;
            }
    如果我是这样设计的控件代码,怎样才能每次点击都能放大到原来的2倍?
      

  4.   

    思路
    pictureBox1_Paint()
    {
    graphic = pictureBox1.CreateGraphic();
    Image img = Image.FromFile(path);
    graphic.DrawImage(img, 图片的尺寸x2);
    }
      

  5.   

    每次放大到原来的2倍可以定义一个成员变量
    double 倍数
    点button 倍数x2
    上面graphic.DrawImage(img, 图片的尺寸x2);
    =>
    graphic.DrawImage(img, 图片的尺寸x倍数);
      

  6.   

    因为我打开图片的是用一个按钮打开的,在按钮定义外部写了 OpenFileDialog openFile = new OpenFileDialog();而这个是按钮的打开代码string path = openFile.FileName;
                    Image image = Image.FromFile(path);
                    this.pictureBox1.Image = image;这些按钮是私有的,所以不能访问他们定义的image
    另一方面,我为了访问刚才打开的图片,就重新定义打开图片的那些信息:
     private void toolStripLabel3_Click(object sender, EventArgs e)
             {
                 Image img = Image.FromFile(openFile.FileName);
                 Bitmap bmp = new Bitmap(img,Width*2,Height*2); 
                 img.Dispose();
                 pictureBox1.Image = bmp;
             }
    发现每一次点击这个按钮,他都重新加载刚才打开的图片,所以只能对打开图片做一次的放大;
    我想打开这张图片后,点击一个按钮就可以放大,不会出现以上的问题。
      

  7.   

    http://developer.51cto.com/art/200909/148623.htm