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月10日 02:47:33

相关推荐

  • 使用C语言怎样清空输入缓冲区?这里有多种方法值得借鉴

    C语言中有几个基本输入函数: //获取字符系列 int fgetc(FILE *stream); int getc(FILE *stream); int getchar(void); //获取行系列 char *fgets(char * restrict s, int n, FILE * restr…

    好文分享 2025年12月17日
    000
  • .net WINFORM的GDI双缓冲的实现方法_实用技巧

    下面小编就为大家分享一篇.net winform的gdi双缓冲的实现方法,具有很好的参考价值,希望对大家学习.net有所帮助。对.net感兴趣的小伙伴们一起跟随小编过来看看吧 有时候在窗体中执行不断的GDI+操作的时候会出现闪速的状况,除了修改窗体的参数,更应该解决刷新本身的问题,双缓冲可能就是这样…

    好文分享 2025年12月17日
    000
  • C#中实现复制与删除文件的方法

    这篇文章主要介绍了c# 复制与删除文件的实现方法的相关资料,希望通过本文能帮助到大家,让大家理解掌握这部分内容,需要的朋友可以参考下 C# 复制与删除文件的实现方法 1、首先是复制文件 首先打开我们的对话框获得文件路径,当然也可以直接编写路径 private void BtnAddFile_Clic…

    好文分享 2025年12月17日
    000
  • XML验证的基本方法有哪些?

    XML验证通过DTD、XSD和Schematron确保XML文档结构和数据符合预设规则。DTD语法简单但功能有限,适用于简单场景;XSD支持丰富数据类型和命名空间,是主流选择;Schematron用XPath表达复杂业务逻辑,补充XSD不足。选择时应根据需求:XSD适合大多数项目,DTD用于简单或遗…

    2025年12月17日
    000
  • pillow库的安装教程及步骤

    Pillow是一款Python图像处理库,它可以帮助我们进行各种图像处理操作。本文将详细介绍Pillow库的安装步骤和方法,并提供相应的代码示例。 一、安装Pillow库安装Pillow库非常简单,我们可以通过pip命令来进行安装。打开命令行终端,输入以下命令即可完成安装: pip install …

    2025年12月13日
    000
  • 使用pip安装whl文件的简单指南

    简明教程:利用pip安装whl文件的方法,需要具体代码示例 概述:在Python开发过程中,我们经常会用到各种第三方库。而pip是Python的官方包管理工具,它可以方便地下载、安装和管理各种Python包。通常情况下,我们可以使用pip install命令来安装第三方包,但当我们需要安装一个whl…

    2025年12月13日
    000
  • 分享NumPy库快捷有效的卸载技巧

    快速有效的NumPy库卸载方法分享,需要具体代码示例 NumPy是Python程序中广泛使用的一个科学计算库,它为Python提供了高性能的多维数组对象和相应的操作函数。然而,由于各种原因,有时候我们可能需要卸载NumPy库。本文将详细介绍如何快速有效地卸载NumPy库,并提供具体的代码示例。 首先…

    2025年12月13日
    000
  • 逐步指导如何卸载NumPy库

    一步步教你卸载NumPy库的方法,需要具体代码示例 NumPy是Python中非常流行和强大的数值计算库,广泛应用于科学计算、数据分析和机器学习等领域。然而,在某些情况下,我们可能需要卸载NumPy库,这可能是因为我们需要使用特定版本的库,或者需要清理系统中的旧版本。 本文将一步步教你如何卸载Num…

    2025年12月13日
    000
  • Python的dir()函数:查看对象的属性和方法

    Python的dir()函数:查看对象的属性和方法,需要具体代码示例 摘要:Python是一种强大而灵活的编程语言,其内置函数和工具为开发人员提供了许多方便的功能。其中一个非常有用的函数是dir()函数,它允许我们查看一个对象的属性和方法。本文将介绍dir()函数的用法,并通过具体的代码示例来演示其…

    2025年12月13日
    000
  • Python程序区分字符串的==运算符和__eq__()方法

    在 Python 中,比较运算符 (==) 和 equals() 方法在处理字符串时以不同的方式使用。为了区分 Python 中的 == 运算符和 equals 方法,我们必须将它们与字符串比较一起使用。当我们在数据分析和机器学习中使用字符串时,字符串比较广泛发生。在本文中,我们将了解在与字符串一起…

    2025年12月13日
    000
  • 快速祛除老年斑的有效方法(教你简单又快速消除老年斑的养肤秘诀)

    随着年龄的增长,老年斑通常出现在面部、颈部和手背等暴露部位,给人们的外貌带来困扰。它是一种常见的皮肤问题,让人看起来显老。为帮助您恢复年轻健康的肌肤,php小编子墨整理了一些有效祛除老年斑的方法。本文将分享快速简单的养肤秘诀,帮助您快速消除老年斑。 1.积极保护皮肤免受紫外线伤害的重要性 所以避免长…

    2025年12月5日
    000
  • 颈椎压迫神经的缓解方法(舒缓颈椎压迫神经的有效措施和建议)

    颈椎压迫神经是一种常见的健康问题,会导致颈部疼痛、麻木和肌肉无力。随着人们关注缓解颈椎压迫神经的方法,本文将提供一些经过验证的策略。php小编西瓜在这里将探讨这些缓解方法,帮助读者更好地应对这一问题。通过了解这些技巧,读者可以减轻颈部疼痛,改善神经功能,从而提高他们的整体健康和生活质量。 段落 1.…

    2025年12月5日
    000
  • 文件超过七天失效恢复方法(如何恢复超过七天失效的文件)

    在数字化时代,文件已成为我们不可或缺的一部分。 不幸的是,我们有时可能会丢失或删除宝贵的文件,而这些文件超过七天,无法通过回收站恢复。当这种情况发生时,您该如何恢复超过七天失效的文件?别担心,本文将为您提供一些实用的方法和技巧。php小编子墨将引导您了解如何找到专业的数据恢复软件、使用免费的数据恢复…

    2025年12月4日
    000
  • 如何选择手机膜,保护你的手机屏幕(选购手机膜的几大要点与技巧)

    随着智能手机的普及,手机膜已成为必不可少的配件,可以保护手机屏幕,延长其使用寿命。但市面上的手机膜琳琅满目,如何选择一款最适合自己的手机膜呢?php小编柚子将为您介绍选购手机膜的几大要点与技巧,帮助您避免踩坑,选出最适合的手机膜。 了解手机膜的材质及类型 PET膜,TPU等、手机膜有多种材质,包括钢…

    2025年12月3日
    000
  • 火影忍者手游须佐佐助口令兑换码

    火影忍者手游中,须佐佐助口令兑换码的获取与兑换%ignore_a_2%如下。 1、 火影忍者手游中,须佐佐助口令活动将在7月9日至7月23日进行。 2、 正确口令:忍界压路机(123456、须佐佐助辣条哥、须佐欧皇等)。 快剪辑 国内⼀体化视频⽣产平台 54 查看详情 以上就是火影忍者手游须佐佐助口…

    2025年12月3日 软件教程
    000
  • 四六级学籍照片上传方法

    如何上传四六级学籍照片 1、 首先,打开微信,进入城市服务公众号,如图所示。 2、 接着,在公众号的菜单栏底部找到便民服务,然后在弹出的窗口中点击微信版面,按照下图的操作步骤进行。 快剪辑 国内⼀体化视频⽣产平台 54 查看详情 3、 在办理业务的过程中选择学籍身份,随后上传学籍照片,具体位置如图所…

    2025年12月3日 软件教程
    000
  • mysql 常用几种密码恢复方法

    mysql 常用几种密码恢复方法/*一. MySQL密码的恢复方法之一 如果忘记了MySQL的root密码,可以用以下方法重新设置: 1. KILL掉系统里的MySQL进程;

    数据库 2025年12月2日
    000
  • mysql数据库备份方法

    mysql数据库备份方法mysql数据库备份方法有很多种,下面我们来一一介绍一下备份工具与直接在mysql.exe进行数据备份。

    数据库 2025年12月2日
    000
  • mysql 开启远程连接的三种方法

    本文章收藏了三种关于如何开启mysql 远程连接,第一款就是在mysql cmd命令提示符下给mysql开启远程连接的,方法三是修改mysql my.ini的文件配置来修改的哦。

    数据库 2025年12月2日
    000
  • Mysql删除重复的数据的方法

    这篇文章主要介绍了mysql删除重复的数据 mysql数据去重复,需要的朋友可以参考下 MySQL数据库中查询重复数据 select * from employee group by emp_name having count (*)>1; Mysql  查询可以删除的重复数据 启科网络PHP…

    2025年12月2日
    000

发表回复

登录后才能评论
关注微信