我想做个上传图片自动生成缩略图的窗口界面的小软件~~~
但不知从何入手???请大侠们帮帮手???
最好就是有源代码供我参考~~~~

解决方案 »

  1.   

    现在有了AjAx,一切都变得简单了
      

  2.   

    楼主,你这个问题实在是太空洞了,难道你相让人做好了给你吗?建议你去多学习一下GDI+技术,然后着手尝试着做,遇到具体的问题再来这里提问,别人容易回答你,你自己也能进步
      

  3.   

    这个也许对你有用。    /// <summary>
        /// 生成缩略图
        /// </summary>
        /// <param name="originalImagePath">源图路径(物理路径)</param>
        /// <param name="thumbnailPath">缩略图路径(物理路径)</param>
        /// <param name="width">缩略图宽度</param>
        /// <param name="height">缩略图高度</param>
        /// <param name="mode">生成缩略图的方式</param> 
        public static void MakeThumbnail(string originalImagePath, string thumbnailPath, int width, int height, string mode)
        {
            System.Drawing.Image originalImage = System.Drawing.Image.FromFile(originalImagePath);        int towidth = width;
            int toheight = height;        int x = 0;
            int y = 0;
            int ow = originalImage.Width;
            int oh = originalImage.Height;        switch (mode)
            {
                case "HW"://指定高宽缩放(可能变形) 
                    break;
                case "W"://指定宽,高按比例 
                    toheight = originalImage.Height * width / originalImage.Width;
                    break;
                case "H"://指定高,宽按比例
                    towidth = originalImage.Width * height / originalImage.Height;
                    break;
                case "Cut"://指定高宽裁减(不变形) 
                    if ((double)originalImage.Width / (double)originalImage.Height > (double)towidth / (double)toheight)
                    {
                        oh = originalImage.Height;
                        ow = originalImage.Height * towidth / toheight;
                        y = 0;
                        x = (originalImage.Width - ow) / 2;
                    }
                    else
                    {
                        ow = originalImage.Width;
                        oh = originalImage.Width * height / towidth;
                        x = 0;
                        y = (originalImage.Height - oh) / 2;
                    }
                    break;
                default:
                    break;
            }        //新建一个bmp图片
            System.Drawing.Image bitmap = new System.Drawing.Bitmap(towidth, toheight);        //新建一个画板
            Graphics g = System.Drawing.Graphics.FromImage(bitmap);        //设置高质量插值法
            g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.High;        //设置高质量,低速度呈现平滑程度
            g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;        //清空画布并以透明背景色填充
            g.Clear(Color.Transparent);        //在指定位置并且按指定大小绘制原图片的指定部分
            g.DrawImage(originalImage, new Rectangle(0, 0, towidth, toheight),
            new Rectangle(x, y, ow, oh),
            GraphicsUnit.Pixel);        try
            {
                //以jpg格式保存缩略图
                bitmap.Save(thumbnailPath, System.Drawing.Imaging.ImageFormat.Jpeg);
            }
            catch (System.Exception e)
            {
                throw e;
            }
            finally
            {
                originalImage.Dispose();
                bitmap.Dispose();
                g.Dispose();
            }
        }
      

  4.   

    C#的缩图算法可能有bug,把有些图片不按比例缩小,缩出来的图非常的难看,但是有些图不按比例缩小却没有问题,缩的非常好!我一直想不明白,用C#编软件缩图,为什么有的图缩完好看,有的图缩完不好看,这应该是其缩图算法的bug。如果用第三方的软件thumbnail,即便不按比例缩,缩出的图都很清晰。