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

本篇文章给大家带来的内容是关于c# 如何生成自定义图片?c# 生成自定义图片方法,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

using System.Drawing;using System.IO;using System.Drawing.Imaging;using System;namespace treads{    ///     /// 生成略缩图    ///     public class Class2    {        private Image srcImage;        private string srcFileName= @"X";//获取图片的路径        private string srcFileName1 = @"x";//要保持图片的新路径        ///         /// 回调        ///         ///         public bool ThumbnailCallback()        {            return false;        }        ///         /// 保存缩略图        ///         ///         ///         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;            }        }        ///         /// 生成缩略图并保存        ///         /// 缩略图的宽度        /// 缩略图的高度        /// 保存的图像格式        /// 缩略图的Image对象        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();            }        }    }}

 制作网络下载的略缩图

  ///         /// 制作远程缩略图        ///         /// 图片URL        /// 新图路径        /// 最大宽度        /// 最大高度        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);        }   ///         /// 获取图片流        ///         /// 图片URL        ///         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;            }        } ///         /// 裁剪图片并保存        ///         /// 源图路径(绝对路径)        /// 缩略图路径(绝对路径)        /// 缩略图宽度        /// 缩略图高度        /// 裁剪宽度        /// 裁剪高度        /// X轴        /// Y轴        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# 生成自定义图片方法的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1432879.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月17日 08:42:04
下一篇 2025年12月17日 08:42:16

相关推荐

  • 如何通过纯CSS实现图片的放大缩小效果的方法和技巧

    如何通过纯CSS实现图片的放大缩小效果的方法和技巧 在现代的网页设计中,图片的展示和处理是非常重要的一部分。而图片的放大缩小效果可以为网站的视觉呈现增添趣味和交互性。在这篇文章中,我们将介绍如何通过纯CSS实现图片的放大缩小效果,并提供具体的代码示例。 使用transition属性实现平滑的过渡效果…

    2025年12月24日
    000
  • 利用CSS实现折叠内容面板特效的技巧和方法

    利用CSS实现折叠内容面板特效的技巧和方法 在网页设计中,折叠内容面板是一种非常常见的特效。通过点击或其他交互形式,隐藏或展示特定内容,以提供更好的用户体验。而利用CSS实现折叠内容面板特效,则是一种简单而有效的方法。本文将介绍一些实现这一特效的技巧和方法,并提供具体的代码示例。 使用checkbo…

    2025年12月24日
    000
  • css如何清除下划线?css清除下划线有哪些方法

    css怎么清除下划线?css去除下划线方法有哪些?很多人可能还不知道怎么操作,下面我们来讲解一下。在css中,我们可以使用text-decoration属性来表示下划线和删除线等样式,首先我们要了解一下text-decoration属性。 text-decoration属性一共有五个值,分别是non…

    2025年12月24日
    100
  • css如何让div居中?css实现div居中的方法

    如何让div水平居中?div怎么居中?相信很多人都会这样的疑问,本篇文章就讲解一下css如何让div居中?以及如何实现div居中的方法。 当我们浏览网页的时候,会发现一般网站的主体都是在页面的中间,并且居中显示在浏览器中的正中央,只要我们实现div居中条件和浏览器居中条件保存一致。 假如我们把最外层…

    2025年12月24日
    000
  • CSS如何设置滚动条样式?CSS设置滚动条样式方法

    现在很多项目中都用到了滚动条,而且在有的时候,用到的是模拟滚动条,很多大型邮箱都是利用css样式来设置的,那么css如何设置滚动条样式?css如何设置滚动条样式方法有哪些? 一、webkit下面的CSS设置滚动条 上面是滚动条的主要几个设置属性,还有更详尽的CSS属性 :horizontal:水平方…

    2025年12月24日
    000
  • 网页添加CSS样式表的四种方法

    网页添加css样式表的四种方法,大家可以根据需要选择自己喜欢的方式。 一、使用STYLE属性: 将STYLE属性直接加在个别的元件标签里。 例如: 这种用法的优点 是可灵巧应用样式於各标签中,但是缺点则是没有整篇文件的『统一性』。 二、使用STYLE标签: 将样式规则写在…标签之中。 复…

    好文分享 2025年12月24日
    000
  • CSS布局自适应高度终极方法

    这篇文章主要介绍了关于CSS布局自适应高度终极方法,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 我们排版的最终目的是让程序员能快速绑定,最终的真实数据能和效果图一样,但是我们经常在国字型页面里面碰到左右两列的高度不确定,这样我们必须要把两列的自己适应,请看解决方法 ,每列高度(事先…

    好文分享 2025年12月24日
    000
  • 让div撑满整个屏幕的方法(css)

    这篇文章主要介绍了关于让div撑满整个屏幕的方法(css),有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 在body只有一个p的时候,可以通过这样的方式让p撑满整个屏幕。 1.给p设置定位。   复习一下——   css中position有五种属性:     static:默认值,没…

    好文分享 2025年12月24日
    000
  • 使用CSS给图片添加阴影的方法

    一般我们可以使用背景图的方式给图片添加阴影,但对于不固定尺寸的图片如何实现呢?我们可以采取“视觉欺骗大法”——定义渐变边框来实现: [code] on_all”> 一般我们可以使用背景图的方式给图片添加阴影,但对于不固定尺寸的图片如何实现呢?我们可以采取“视觉欺骗大法”——定义渐变…

    好文分享 2025年12月24日
    000
  • css实现圆角三角形的方法

    本文主要和大家介绍了css实现带圆角三角型的示例代码的相关资料,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧,希望能帮助到大家。 前言 目标实现效果图如下: 实现 .triangle{ display: inline-block; font-size: 0; overf…

    2025年12月24日 好文分享
    000
  • CSS有几种实现三栏布局的方法

    这次给大家带来CSS有几种实现三栏布局的方法,CSS实现三栏布局的注意事项有哪些,下面就是实战案例,一起来看一下。 前言 其实不管是三栏布局还是两栏布局都是我们在平时项目里经常使用的,也许你不知道什么事三栏布局什么是两栏布局但实际已经在用,或许你知道三栏布局的一种或两种方法,但实际操作中也只会依赖那…

    好文分享 2025年12月24日
    000
  • CSS定制文本省略的方法

    这次给大家带来CSS定制文本省略的方法,CSS定制文本省略的注意事项有哪些,下面就是实战案例,一起来看一下。 WeTest导读 拿到设计MM的设计稿,Oh NO,点点点后面又双叒叕加内容了,弹丸之地,劳心费神啊!!可怜我们UI开发GG每次苦口婆心说,微臣不是不做,是办不到啊!很是愧疚。而现在,自从用…

    2025年12月24日 好文分享
    000
  • 常用的CSS实现垂直居中的4种方法

    这次给大家带来常用的CSS实现垂直居中的4种方法,CSS实现垂直居中的注意事项有哪些,下面就是实战案例,一起来看一下。 行高line-height实现单行文本垂直居中 以前一直认为单行文本垂直居中要将高度和行高设置成相同的值,但高度其实没必要设置。实际上,文本本身就在一行中居中显示。在不设置高度的情…

    2025年12月24日
    000
  • CSS用图换字多种方法

    这次给大家带来CSS用图换字多种方法,CSS用图换字的注意事项有哪些,下面就是实战案例,一起来看一下。 前面的话 CSS以图换字的技术,很久都没人提起了。它是一种在h1标签内,使用图像替换文本元素的技术,使页面在设计和可访问性之间达到平衡。本文将详细介绍CSS以图换字的9种方法 文字隐藏 在h1标签…

    好文分享 2025年12月24日
    000
  • CSS 垂直水平居中有哪几种方法

    这次给大家带来CSS 垂直水平居中有哪几种方法,CSS 垂直水平居中的注意事项有哪些,下面就是实战案例,一起来看一下。 CSS 居中对齐 代码中均省略了浏览器前缀 以下例子以我的个人的标准排序 当然也有更多的居中处理方法 但我觉得只有这5种方法是最完善的解决方案 flex 居中 优点:可对未知高度进…

    好文分享 2025年12月24日
    000
  • 清除css浮动的方法

    这次给大家带来清除css浮动的方法,清除css浮动的注意事项有哪些,下面就是实战案例,一起来看一下。 一,我们为什么要浮动 为什么浮动,为什么要清除浮动,以及清除浮动的方法。在网页布局的时候有时需要元素并排显示,如果不选择浮动,那么那些块状元素就会一行一行显示,占用空间不说,用户体验也是极为不好的。…

    2025年12月24日 好文分享
    000
  • 表格细边框的两种CSS实现方法

    在网页制作中,细边框这个制作方法是必不可少的。这里admin10000.com介绍2种常见的表格细边框制作方法,均通过XHTML验证。 表格细边框的两种CSS实现方法 /* 利用表格样式 border-collapse: collapse 实现细边框 */ .tab1 { width: 300px;…

    好文分享 2025年12月23日
    000
  • html设置缓存三种方法是什么

    HTML设置缓存的三种方法是什么?在Web开发中,为了提高用户访问速度和减轻服务器负载,我们可以通过设置缓存来减少网页加载时间。接下来,我将为您详细介绍三种常用的HTML设置缓存的方法,并提供具体的代码示例。 方法一:通过HTTP响应头设置缓存 HTTP响应头中的”Cache-Contr…

    2025年12月22日
    000
  • 实现响应式布局的技术和策略

    如何实现响应式布局的技术与方法 引言:随着移动设备的普及和多种终端的涌现,实现响应式布局已成为现代网页开发的重要一环。响应式布局可以使网页在不同的屏幕尺寸下自动适应,提供更好的用户体验。本文将介绍响应式布局的技术与方法,并提供具体的代码示例。 一、媒体查询(Media Queries)媒体查询是实现…

    2025年12月21日
    000
  • numpy数组的list转换方法

    利用list转换为numpy数组的方法,需要具体代码示例 在Python中,我们经常需要处理大量的数值数据,而numpy库是Python中常用的数值计算工具之一。它提供了丰富的数学函数和方便的数组操作功能。而在numpy中,通常使用numpy数组来存储和处理数据。在实际应用中,我们往往需要将其他数据…

    2025年12月21日
    000

发表回复

登录后才能评论
关注微信