在C#中如何生成400*400-1200*1200左右的高质量JPG图片缩略图呢?自带的方法只适合生成110*110以下的。另外JPG中有的颜色是以RGB索引的,有的是以CMYK索引的,如何相互转换呢?

解决方案 »

  1.   

    给你一个我一直用 的方法
    感觉应该是符合你的要求的
    using System;
    using System.Drawing;namespace Image
    {
       class Class1
       { 
    public static bool ThumbnailCallback()
    {
      return false;

    }
    [STAThread]
    static void Main(string[] args)
    {
              string filename = args[0];
     string bigpic = "D:\\"+filename;
     string smallpic = "E:\\"+filename;
     System.Drawing.Image bigimage = System.Drawing.Image.FromFile(bigpic);
     System.Drawing.Image.GetThumbnailImageAbort callb = new System.Drawing.Image.GetThumbnailImageAbort(ThumbnailCallback);
     System.Drawing.Image smallimage;
     smallimage = bigimage.GetThumbnailImage(bigimage.Width*300/bigimage.Height,300,callb,new System.IntPtr());
     smallimage.Save(smallpic,System.Drawing.Imaging.ImageFormat.Jpeg);
     bigimage.Dispose();
     smallimage.Dispose();
    }
       }
    }
     
    生成后运行时的命令 Image test.jpg
    其中test.jpg放在D盘
    然后缩的图存在E盘了,同名的,当然你可以改变你要存的目录
    这个方法生成的是高度为300的图,而宽度是依照原图的
    你可以根据自己的要求改变宽度和高度
    我测试了不论你设置怎样的比例和实践大小,得到的图还是不错的