C# asp.net 图片微略图及图片裁剪处理
时间:2014-05-11 15:55:30
收藏:0
阅读:422
try { //取得图片大小 System.Drawing.Size size = new System.Drawing.Size(Convert.ToInt32(w), Convert.ToInt32(h)); //新建一个bmp图片 System.Drawing.Image bmp = new System.Drawing.Bitmap(size.Width, size.Height); //新建一个画板 g = System.Drawing.Graphics.FromImage(bmp); //设置高质量插值法 g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBilinear; //设置高质量,低速度呈现平滑程度 g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality; //清空一下画布 g.Clear(System.Drawing.Color.Transparent); //在指定位置画图 g.DrawImage(img, new System.Drawing.Rectangle(0, 0, bmp.Width, bmp.Height), new System.Drawing.Rectangle(cwidth / 2, cheigh_h / 2, img.Width - cwidth, img.Height - cheigh_h), System.Drawing.GraphicsUnit.Pixel);//cwidth要裁剪尺寸 //保存高清晰度的缩略图 bmp.Save(newMapPath, System.Drawing.Imaging.ImageFormat.Jpeg); } finally { g.Dispose(); }
相关参数: SmoothingMode { 对直线、曲线和已填充区域的边缘采用锯齿消除功能, 它不能控制路径渐变画笔 } Invalid // 一个无效模式 Default // 不消除锯齿, 等效于 HighSpeed、None HighSpeed // 不消除锯齿 HighQuality // 消除锯齿, 等效于 AntiAlias None // 不消除锯齿 AntiAlias // 消除锯齿 InterpolationMode { 插补模式确定如何计算两个像素点之间的中间值 } Invalid // 等效于 QualityMode 枚举的 Invalid 元素. Default // 默认模式. Low // 低质量插值法. High // 高质量插值法. Bilinear // 双线性插值法; 不进行预筛选; 将图像收缩为原始大小的 50% 以下时此模式不适用. Bicubic // 双三次插值法; 不进行预筛选; 将图像收缩为原始大小的 25% 以下时此模式不适用. NearestNeighbor // 最临近插值法. HighQualityBilinear // 高质量的双线性插值法; 执行预筛选以确保高质量的收缩. HighQualityBicubic // 高质量的双三次插值法; 执行预筛选以确保高质量的收缩; 可产生质量最高的转换图像. CompositingMode { 颜色合成模式 } SourceOver // 与背景色混合; 该混合由透明度确定 SourceCopy // 改写背景色 CompositingQuality { 图像合成时, 源像素与目标像素和合成方式 } Invalid // 无效质量 Default // 默认质量 HighSpeed // 高速度、低质量 HighQuality // 高质量、低速度复合 GammaCorrected // 使用灰度校正 AssumeLinear // 假定线性值 PixelOffsetMode { 像素偏移模式 } Invalid // 无效模式. Default // 默认模式. HighSpeed // 高速度、低质量呈现. HighQuality // 高质量、低速度呈现. None // 没有任何像素偏移. Half // 像素在水平和垂直距离上均偏移 -0.5 个单位, 以进行高速锯齿消除.
评论(0)