c#生成缩略图不失真的方法实例分享
程序员文章站
2022-05-05 19:38:27
...
c#生成缩略图不失真的方法实例分享
/// <summary> /// 获得缩微图 /// </summary> /// <returns></returns> public bool GetThumbImg() { try { string imgpath; //原始路径 if(imgsourceurl.IndexOf("\",0)<0) //使用的是相对路径 { imgpath = HttpContext.Current.Server.MapPath(imgsourceurl); //转化为物理路径 } else { imgpath=imgsourceurl; } System.Drawing.Image sourceImage = System.Drawing.Image.FromFile(imgpath); int width = sourceImage.Width; int height = sourceImage.Height; if(thumbwidth <= 0) { thumbwidth = 120; } if(thumbwidth >= width) { return false; } else { (thumbwidth,thHeight*thumbwidth/thWidth,null,IntPtr.Zero); Image imgThumb=new System.Drawing.Bitmap(thumbwidth,height*thumbwidth/width); System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(imgThumb); g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic; g.DrawImage(sourceImage, new Rectangle(0, 0, thumbwidth,height*thumbwidth/width), 0, 0, width, height, GraphicsUnit.Pixel); string thumbpath=""; sourceImage.Dispose(); if(thumburl=="") { thumbpath=imgpath; } if(thumbpath.IndexOf("\",0)<0)//使用的是相对路径 { thumbpath=HttpContext.Current.Server.MapPath(thumburl);//转化为物理路径 } imgThumb.Save(thumbpath,ImageFormat.Jpeg); imgThumb.Dispose(); return true; } } catch { throw; } }
以上就是c#生成缩略图不失真的方法实例分享的内容,更多相关内容请关注PHP中文网(www.php.cn)!
上一篇: php设计模式 Interator (迭代器模式)
下一篇: Java 中定时器和定时任务使用的实例