c# 如何生成自定义图片?c# 生成自定义图片方法

互联网 18-10-15
本篇文章给大家带来的内容是关于c# 如何生成自定义图片?c# 生成自定义图片方法,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。
using System.Drawing;using System.IO;using System.Drawing.Imaging;using System;namespace treads {    /// <summary>     /// 生成略缩图    /// </summary>     public class Class2     {        private Image srcImage;        private string srcFileName= @"X";//获取图片的路径         private string srcFileName1 = @"x";//要保持图片的新路径          /// <summary>         /// 回调        /// </summary>         /// <returns></returns>         public bool ThumbnailCallback()         {            return false;         }        /// <summary>         /// 保存缩略图        /// </summary>         /// <param name="Width"></param>         /// <param name="Height"></param>         public void SaveThumbnailImage(int Width, int Height)         {            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;             }         }        /// <summary>         /// 生成缩略图并保存        /// </summary>         /// <param name="Width">缩略图的宽度</param>         /// <param name="Height">缩略图的高度</param>         /// <param name="imgformat">保存的图像格式</param>         /// <returns>缩略图的Image对象</returns>         public void SaveImage(int Width, int Height, ImageFormat imgformat)         {             srcImage = Image.FromFile(srcFileName);            if (imgformat != ImageFormat.Gif && (srcImage.Width > Width) || (srcImage.Height > Height))             {                 Image img;                 Image.GetThumbnailImageAbort callb = new Image.GetThumbnailImageAbort(ThumbnailCallback);                 img = srcImage.GetThumbnailImage(Width, Height, callb, IntPtr.Zero);                 srcImage.Dispose();                 img.Save(srcFileName1, imgformat);                 img.Dispose();             }         }      } }

制作网络下载的略缩图

  /// <summary>         /// 制作远程缩略图        /// </summary>         /// <param name="url">图片URL</param>         /// <param name="newFileName">新图路径</param>         /// <param name="maxWidth">最大宽度</param>         /// <param name="maxHeight">最大高度</param>         public static void MakeRemoteThumbnailImage(string url, string newFileName, int maxWidth, int maxHeight)         {             Stream stream = GetRemoteImage(url);            if (stream == null)                return;             Image original = Image.FromStream(stream);             stream.Close();             MakeThumbnailImage(original, newFileName, maxWidth, maxHeight);         }   /// <summary>         /// 获取图片流        /// </summary>         /// <param name="url">图片URL</param>         /// <returns></returns>         private static Stream GetRemoteImage(string url)         {             HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(url);             request.Method = "GET";             request.ContentLength = 0;             request.Timeout = 20000;             HttpWebResponse response = null;            try             {                 response = (HttpWebResponse)request.GetResponse();                return response.GetResponseStream();             }            catch             {                return null;             }         } /// <summary>         /// 裁剪图片并保存        /// </summary>         /// <param name="fileName">源图路径(绝对路径)</param>         /// <param name="newFileName">缩略图路径(绝对路径)</param>         /// <param name="maxWidth">缩略图宽度</param>         /// <param name="maxHeight">缩略图高度</param>         /// <param name="cropWidth">裁剪宽度</param>         /// <param name="cropHeight">裁剪高度</param>         /// <param name="X">X轴</param>         /// <param name="Y">Y轴</param>         public static bool MakeThumbnailImage(string fileName, string newFileName, int maxWidth, int maxHeight, int cropWidth, int cropHeight, int X, int Y)         {            byte[] imageBytes = File.ReadAllBytes(fileName);             Image originalImage = Image.FromStream(new System.IO.MemoryStream(imageBytes));             Bitmap b = new Bitmap(cropWidth, cropHeight);            try             {                using (Graphics g = Graphics.FromImage(b))                 {                    //设置高质量插值法                     g.InterpolationMode = InterpolationMode.HighQualityBicubic;                    //设置高质量,低速度呈现平滑程度                     g.SmoothingMode = SmoothingMode.AntiAlias;                     g.PixelOffsetMode = PixelOffsetMode.HighQuality;                    //清空画布并以透明背景色填充                    g.Clear(Color.Transparent);                    //在指定位置并且按指定大小绘制原图片的指定部分                     g.DrawImage(originalImage, new Rectangle(0, 0, cropWidth, cropHeight), X, Y, cropWidth, cropHeight, GraphicsUnit.Pixel);                     Image displayImage = new Bitmap(b, maxWidth, maxHeight);                     SaveImage(displayImage, newFileName, GetCodecInfo("image/" + GetFormat(newFileName).ToString().ToLower()));                    return true;                 }             }            catch (System.Exception e)             {                throw e;             }            finally             {                 originalImage.Dispose();                 b.Dispose();             }         }

以上就是对c# 如何生成自定义图片?c# 生成自定义图片方法的全部介绍,如果您想了解更多有关C++视频教程,请关注PHP中文网。

以上就是c# 如何生成自定义图片?c# 生成自定义图片方法的详细内容,更多内容请关注技术你好其它相关文章!

来源链接:
免责声明:
1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险
2.本文版权归属原作所有,仅代表作者本人观点,不代表本站的观点或立场
标签: 方法
上一篇:php获取远程图片并下载保存到本地的方法分析 下一篇:c++中string&char *&char[]之间如何转换(示例)

相关资讯