//
读取图像源文件流
System.Drawing.Image Img = System.Drawing.Image.FromStream(newFile);
// 新建一bmp图片
System.Drawing.Image newImg = new System.Drawing.Bitmap(_sWidth, _sHeight);
// 新建一画板
System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(newImg);
// 设置高质量的双三次插值法
g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
// 在指定位置并且指定大小绘制原图片的指定部分
g.DrawImage(Img, new Rectangle( 0 , 0 , _sWidth, _sHeight), 0 , 0 , _Width, _Height, GraphicsUnit.Pixel);
// 保存图片
newImg.Save(_SavePath + FName.Split( ' . ' ).GetValue( 0 ).ToString() + " _s. " + FName.Split( ' . ' ).GetValue( 1 ).ToString(), System.Drawing.Imaging.ImageFormat.Jpeg); // 指定缩略图的类型为jpg,缩略图最小且质量最高
newImg.Dispose();
g.Dispose();
System.Drawing.Image Img = System.Drawing.Image.FromStream(newFile);
// 新建一bmp图片
System.Drawing.Image newImg = new System.Drawing.Bitmap(_sWidth, _sHeight);
// 新建一画板
System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(newImg);
// 设置高质量的双三次插值法
g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
// 在指定位置并且指定大小绘制原图片的指定部分
g.DrawImage(Img, new Rectangle( 0 , 0 , _sWidth, _sHeight), 0 , 0 , _Width, _Height, GraphicsUnit.Pixel);
// 保存图片
newImg.Save(_SavePath + FName.Split( ' . ' ).GetValue( 0 ).ToString() + " _s. " + FName.Split( ' . ' ).GetValue( 1 ).ToString(), System.Drawing.Imaging.ImageFormat.Jpeg); // 指定缩略图的类型为jpg,缩略图最小且质量最高
newImg.Dispose();
g.Dispose();
另外一种生产缩略图的方法,不过生成缩略图文件大并且质量很低
System.Drawing.Image Img
=
System.Drawing.Image.FromStream(newFile);
System.Drawing.Image newImg = Img.GetThumbnailImage(_sWidth, _sHeight, null , System.IntPtr.Zero);
newImg.Save(_SavePath + FName.Split( ' . ' ).GetValue( 0 ).ToString() + " _s. " + FName.Split( ' . ' ).GetValue( 1 ).ToString());
newImg.Dispose();
System.Drawing.Image newImg = Img.GetThumbnailImage(_sWidth, _sHeight, null , System.IntPtr.Zero);
newImg.Save(_SavePath + FName.Split( ' . ' ).GetValue( 0 ).ToString() + " _s. " + FName.Split( ' . ' ).GetValue( 1 ).ToString());
newImg.Dispose();