代码如下
1.这种方法不对吗,如果有好的方法,还请不吝赐教。请允许我描述下情况啊:
在转换图片的尺寸之后,不能用ps打开,然后用flash实现相册效果时,也同样不显示、、为什么??

解决方案 »

  1.   

    # /// <summary>  
         /// 生成缩略图(自动计算宽高)  
         /// </summary>  
         /// <param name="originalImagePath">源图路径(物理路径)</param>  
         /// <param name="thumbnailPath">缩略图保存路径(物理路径)</param>  
         /// <param name="width">缩略图宽度</param>  
         /// <param name="height">缩略图高度</param>  
         /// <param name="height">是否删除原图</param>   
         public static void MakeThumbnail(string originalImagePath, string thumbnailPath, int width, int height,bool isDeleteoriginalImage)  
         {  
             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;      //源图片高  
       
             if (towidth >= ow && toheight >= oh)     //如果源图片等于或小于要生成图片的大小,则直接复制  
             {  
                 File.Copy(originalImagePath, thumbnailPath);  
                 if (isDeleteoriginalImage)  
                 {  
                     File.Delete(originalImagePath);  
                 }  
                 originalImage.Dispose();  
                 return;  
             }  
       
             double wh = towidth / toheight;  
             double owh = ow / oh;  
               
             //按等比宽计算生成图片的宽高  
             toheight = oh * towidth / ow;       //得到按宽等比的高  
       
       
             if (toheight > height) //如果等比的高还是大于生成缩略图的高  
             {  
                 towidth = towidth * height / toheight;  
                 toheight = height;  
             }  
       
             //新建一个bmp图片  
             System.Drawing.Image bitmap = new System.Drawing.Bitmap(towidth, toheight);  
       
             //新建一个画板  
             System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(bitmap);  
       
             //设置高质量插值法  
             g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.High;  
       
             //设置高质量,低速度呈现平滑程度  
             g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;  
       
             
       
             //清空画布并以透明背景色填充  
             g.Clear(System.Drawing.Color.Transparent);  
       
             //在指定位置并且按指定大小绘制原图片的指定部分  
             g.DrawImage(originalImage, new System.Drawing.Rectangle(0, 0, towidth, toheight),  
                 new System.Drawing.Rectangle(x, y, ow, oh),  
                 System.Drawing.GraphicsUnit.Pixel);  
       
             //开始定义打水印  
             System.Drawing.Font f = new System.Drawing.Font("Verdana", 16);  
             System.Drawing.Brush b = new System.Drawing.SolidBrush(System.Drawing.Color.Blue);  
             g.DrawString("点起床啊\r\nsfzdsfdsfdsfsdfdsfdsf111", f, b, 15, 15);  
       
       
             try  
             {  
                 //以jpg格式保存缩略图  
                 bitmap.Save(thumbnailPath, System.Drawing.Imaging.ImageFormat.Jpeg);  
             }  
             catch (System.Exception e)  
             {  
                 throw e;  
             }  
            finally  
             {  
                 originalImage.Dispose();  
                 bitmap.Dispose();  
                 g.Dispose();  
             }  
         }  
      

  2.   

    图片缩略图Image.GetThumbnailImage 方法
    jpg是可以用PS的
      

  3.   


    我是想把大的图片改成分辨率为800、600的,同样3M的图片变成1M或更小的。不只是单纯的更改图片的款和高。转换之后也是jpg的,但ps就是打不开,flash也不能显示。。
      

  4.   

    ps提示如下:可能ps对图片要求较高,而上面用bitmap创建可能达不到要求把,