• 技术文章 >后端开发 >C#.Net教程

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

    云罗郡主云罗郡主2018-10-15 14:08:15转载2159

    本篇文章给大家带来的内容是关于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# 生成自定义图片方法的详细内容,更多请关注php中文网其它相关文章!

    声明:本文转载于:cnblogs,如有侵犯,请联系admin@php.cn删除
    上一篇:c++中string&char *&char[]之间如何转换(示例) 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • Html中使用自定义图片来实现checkbox显示的方法_HTML/Xhtml_网页制作• WP相关文章插件修改成批量添加自定义图片地址_PHP• php实现中间带自定义图片的二维码 • jQuery简单自定义图片轮播插件及用法示例
    1/1

    PHP中文网