将外部导入的图片,该图片尺寸随机,缩放成自己想要的一些尺寸比如说1024×768,该如何实现?在下是新手,求大虾帮帮忙了

解决方案 »

  1.   

      Bitmap buffer = new Bitmap(1024, 768);
                        Image img = Image.FromFile("C:\\temp.jpg");
                        Graphics g = Graphics.FromImage(buffer);
                        g.DrawImage(img, 0, 0, 1024, 768);
                        g.Dispose();
                        buffer.Save("C:\\new.jpg");  
      

  2.   

    给你个方法吧
     /// <summary>
            /// Resize图片
            /// </summary>
            /// <param name="bmp">原始Bitmap</param>
            /// <param name="newW">新的宽度</param>
            /// <param name="newH">新的高度</param>
            /// <returns>处理以后的图片</returns>
            public static Bitmap KiResizeImage(Bitmap bmp, int newW, int newH)
            {
                try
                {
                    Bitmap b = new Bitmap(newW, newH);
                    Graphics g = Graphics.FromImage(b);                // 插值算法的质量
                    g.InterpolationMode = InterpolationMode.HighQualityBicubic;                g.DrawImage(bmp, new Rectangle(0, 0, newW, newH), new Rectangle(0, 0, bmp.Width, bmp.Height), GraphicsUnit.Pixel);
                    g.Dispose();                return b;
                }
                catch
                {
                    return null;
                }
            }
      

  3.   

    相关代码太多了,贴得我都有点不想再贴了,为啥楼主不自己搜索下。
    PS:楼上两位只给了思路,代码还不能使用,因为尚未处理图片大小,直接按照输入大小绘制新图会让图片变形的——除非就是要它变形。
    我在网上搜了好多,都用不了,麻烦大虾给我贴个能用的,图片是通过openFileDialog打开,在picturebox中显示,就是通过一个按钮控件,来改变这个图片的尺寸,saveFileDialog来保存图片
      

  4.   


            public Image Preview(Image image, int width, int height)
            {
                try
                {
                    double w = width;
                    double h = height;                double iw = image.Width;
                    double ih = image.Height;                double wq = w / iw;
                    double hq = h / ih;                Image result = null;
                    if (wq < hq)
                    {
                        result = new Bitmap(image, width, (int)(ih * wq));
                    }
                    else if (wq > hq)
                    {
                        result = new Bitmap(image, (int)(iw * hq), height);
                    }
                    else
                    {
                        result = new Bitmap(image, width, height);
                    }
                    return result;
                }
                finally
                {
                    image.Dispose();
                }
            }这个是很久以前写的一个方法 等比缩略图图像的不会拉伸图像 图像的宽和高 不会超过你指定的参数的宽和高.