c#生成自定义图片方法代码实例
本篇文章给大家带来的内容是关于c#如何生成自定义图片?c#生成自定义图片方法,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。
usingSystem.Drawing;usingSystem.IO;usingSystem.Drawing.Imaging;usingSystem;namespacetreads {//////生成略缩图/// publicclassClass2 {privateImagesrcImage;privatestringsrcFileName=@"X";//获取图片的路径 privatestringsrcFileName1=@"x";//要保持图片的新路径 //////回调/// ///publicboolThumbnailCallback() {returnfalse; }/// ///保存缩略图/// ////// publicvoidSaveThumbnailImage(intWidth,intHeight) {switch(Path.GetExtension(srcFileName).ToLower()) {case".png": SaveImage(Width,Height,ImageFormat.Png);break;case".gif": SaveImage(Width,Height,ImageFormat.Gif);break;default: SaveImage(Width,Height,ImageFormat.Jpeg);break; } }/// ///生成缩略图并保存/// ///缩略图的宽度 /// 缩略图的高度 /// 保存的图像格式 /// 缩略图的Image对象 publicvoidSaveImage(intWidth,intHeight,ImageFormatimgformat) { srcImage=Image.FromFile(srcFileName);if(imgformat!=ImageFormat.Gif&&(srcImage.Width>Width)||(srcImage.Height>Height)) { Imageimg; Image.GetThumbnailImageAbortcallb=newImage.GetThumbnailImageAbort(ThumbnailCallback); img=srcImage.GetThumbnailImage(Width,Height,callb,IntPtr.Zero); srcImage.Dispose(); img.Save(srcFileName1,imgformat); img.Dispose(); } } } }
制作网络下载的略缩图
//////制作远程缩略图/// ///图片URL /// 新图路径 /// 最大宽度 /// 最大高度 publicstaticvoidMakeRemoteThumbnailImage(stringurl,stringnewFileName,intmaxWidth,intmaxHeight) { Streamstream=GetRemoteImage(url);if(stream==null)return; Imageoriginal=Image.FromStream(stream); stream.Close(); MakeThumbnailImage(original,newFileName,maxWidth,maxHeight); }/// ///获取图片流/// ///图片URL /// privatestaticStreamGetRemoteImage(stringurl) { HttpWebRequestrequest=(HttpWebRequest)HttpWebRequest.Create(url); request.Method="GET"; request.ContentLength=0; request.Timeout=20000; HttpWebResponseresponse=null;try { response=(HttpWebResponse)request.GetResponse();returnresponse.GetResponseStream(); }catch {returnnull; } }/// ///裁剪图片并保存/// ///源图路径(绝对路径) /// 缩略图路径(绝对路径) /// 缩略图宽度 /// 缩略图高度 /// 裁剪宽度 /// 裁剪高度 /// X轴 /// Y轴 publicstaticboolMakeThumbnailImage(stringfileName,stringnewFileName,intmaxWidth,intmaxHeight,intcropWidth,intcropHeight,intX,intY) {byte[]imageBytes=File.ReadAllBytes(fileName); ImageoriginalImage=Image.FromStream(newSystem.IO.MemoryStream(imageBytes)); Bitmapb=newBitmap(cropWidth,cropHeight);try {using(Graphicsg=Graphics.FromImage(b)) {//设置高质量插值法 g.InterpolationMode=InterpolationMode.HighQualityBicubic;//设置高质量,低速度呈现平滑程度 g.SmoothingMode=SmoothingMode.AntiAlias; g.PixelOffsetMode=PixelOffsetMode.HighQuality;//清空画布并以透明背景色填充g.Clear(Color.Transparent);//在指定位置并且按指定大小绘制原图片的指定部分 g.DrawImage(originalImage,newRectangle(0,0,cropWidth,cropHeight),X,Y,cropWidth,cropHeight,GraphicsUnit.Pixel); ImagedisplayImage=newBitmap(b,maxWidth,maxHeight); SaveImage(displayImage,newFileName,GetCodecInfo("image/"+GetFormat(newFileName).ToString().ToLower()));returntrue; } }catch(System.Exceptione) {throwe; }finally { originalImage.Dispose(); b.Dispose(); } }
以上就是对c#如何生成自定义图片?c#生成自定义图片方法的全部介绍,感谢大家对毛票票的支持。