c#生成缩略图不失真的方法实例分享

c#生成缩略图不失真的方法实例分享

/// /// 获得缩微图/// ///   public bool GetThumbImg(){try{string imgpath; //原始路径     if(imgsourceurl.IndexOf("\",0)<0) //使用的是相对路径     {imgpath = HttpContext.Current.Server.MapPath(imgsourceurl); //转化为物理路径     }else{imgpath=imgsourceurl;}System.Drawing.Image sourceImage = System.Drawing.Image.FromFile(imgpath);int width = sourceImage.Width;int height = sourceImage.Height;if(thumbwidth = width){return false;}else{(thumbwidth,thHeight*thumbwidth/thWidth,null,IntPtr.Zero);Image imgThumb=new System.Drawing.Bitmap(thumbwidth,height*thumbwidth/width);System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(imgThumb);g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;g.DrawImage(sourceImage, new Rectangle(0, 0, thumbwidth,height*thumbwidth/width), 0, 0, width, height, GraphicsUnit.Pixel);string thumbpath="";sourceImage.Dispose();if(thumburl==""){thumbpath=imgpath;}if(thumbpath.IndexOf("\",0)<0)//使用的是相对路径      {thumbpath=HttpContext.Current.Server.MapPath(thumburl);//转化为物理路径      }imgThumb.Save(thumbpath,ImageFormat.Jpeg);imgThumb.Dispose();return true;}}catch{throw;}}

以上就是c#生成缩略图不失真的方法实例分享的内容,更多相关内容请关注PHP中文网(www.php.cn)!

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月17日 05:57:23
下一篇 2025年12月17日 05:57:32

相关推荐

  • c#将Excel数据导入到数据库的实现代码

    c#将excel数据导入到数据库的实现代码 假如Excel中的数据如下: 数据库建表如下: 其中Id为自增字段: 代码: using System;using System.Collections.Generic;using System.Linq;using System.Web;using Sy…

    2025年12月17日 好文分享
    000
  • C#实现上传照片到物理路径,并且将地址保存到数据库的小例子

    c#实现上传照片到物理路径,并且将地址保存到数据库的小例子 效果: 思路:首先,获取图片物理地址,然后进行判断将图片保存到文件夹下,再将图片的信息保存到数据库。数据库: create table image1 ( ID int identity(1,1) primary key, ImageName…

    2025年12月17日
    000
  • C#中的FileUpload 选择后的预览效果具体实现

    c#中的fileupload 选择后的预览效果  实现方法:  HTML:  JS:  function onFileChange(sender) { document.getElementById(“imgDimensionalPic”).src = window.URL.createObject…

    2025年12月17日
    000
  • c#加密类使用方法示例

    c#加密类使用方法示例 using System;using System.IO;using System.Text;using System.Security.Cryptography;using System.Web;namespace Encryption.App_Code{ /// /// …

    好文分享 2025年12月17日
    000
  • C#操作Excel数据增删改查示例

    c#操作excel数据增删改查。  首先创建exceldb.xlsx文件,并添加两张工作表。  工作表1:  userinfo表,字段:userid、username、age、address、createtime。  工作表2:  order表,字段:orderno、productname、quan…

    好文分享 2025年12月17日
    000
  • 通过C#动态生成图书信息XML文件

    通过c#动态生成图书信息xml文件(books.xml),文件如下:  Harry Potter J K. Rowling 2005-08-15 29.99 Learning XML Erik T. Ray 2003-10-18 39.95 方法1:使用StringBuilder拼接XML  ///…

    好文分享 2025年12月17日
    000
  • C#获取当前页面的URL示例代码

    本实例的测试url:http://www.mystudy.cn/web/index.aspx  1、通过c#获取当前页面的url  string url = Request.Url.AbsoluteUri; //结果: http://www.mystudy.cn/web/index.aspx str…

    好文分享 2025年12月17日
    000
  • C++设计模式浅识装饰模式

    装饰模式:动态的给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更加灵活。  装饰模式的四个角色: 组件类:component 具体组件类:coneretecomponent 装饰类:decorator(从外类来扩展component类的功能,但对于component来说是无需知道d…

    好文分享 2025年12月17日
    000
  • C++设计模式浅识迭代器模式

    迭代器模式:提供一中方法顺序访问一个聚合对象中的各个元素,而又不暴露该对象的内部表示。【dp】 四个角色: iterator迭代器抽象类: 用于定义得到开始对象,得到下一个对象、判断是否到结尾、当前对象等抽象方法,统一接口。 concreteiterator具体迭代器类: 继承iterator,实现…

    好文分享 2025年12月17日
    000
  • C++设计模式浅识外观模式

    外观模式(facade):为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。 两大角色: 外观类facade: 知道哪些子系统类负责处理请求,将客户的请求代理给适当的子系统对象。 子系统集合subsystem: 实现子系统的功能,处理facade对…

    好文分享 2025年12月17日
    000
  • C++设计模式浅识模板方法模式

    模板方法模式:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 适用的一个时机:当我们要完成在某一细节层次一致的一个过程或一系列步骤,但其个别步骤在更详细的层次上的实现可能不同时,我们通常考虑用模板方法模式来处理。 模板方…

    2025年12月17日
    000
  • C++设计模式浅识原型模式

    定义:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。 原型模式其实就是从一个对象再创建另外一个可定制的对象,而且不需要知道任何创建的细节。 原型模式主要考虑的深复制与浅复制,在c++++的类设计中,拷贝构造函数就是浅复制,当重载赋值运算符时就是深复制。 浅复制:被复制对象的所有变量…

    好文分享 2025年12月17日
    000
  • C++设计模式浅识工厂方法模式

    工厂方法模式(factory method):定义一个用于创建对象的接口,让子类去实例化哪一个类,工厂方法使一个类的实例化延迟到其子类。 与简单工厂的区别:简单工厂需要修改原有类,违背了开闭原则。而工厂方法就避免类这个问题。保持了封装对象的创建过程的优点,只需增加工厂类就可以,解决了简单工厂分支判断…

    2025年12月17日
    000
  • C++设计模式浅识代理模式

    代理模式(proxy): 为其他对象提供一种代理以控制对这个对象(被代理者,即本人)的访问。  在c++#中实现方法是使用接口interface定义需要的方法,而在c++中需要实现一个类作为接口使用,其中定义需要的方法。这样对我话,本人并不需要参与其中的具体活动,而由代理人出面。客户端(第三方)也不…

    好文分享 2025年12月17日
    000
  • C++设计模式浅识简单工厂模式

    简单工厂定义: 实现一个工厂函数对其他操作类选择性的调用,实现用户的实际需求。  将需要的功能分成多个组件,可以减少代码的耦合性,提高代码复用。在以后对某个功能改需求时,只需局部修改,不至于牵一发而动全身,大大提高效率。  面向对象的设计思想是通过封装、继承、多态把程序的耦合度降低,而设计模式是对o…

    好文分享 2025年12月17日
    000
  • XML中如何生成XML报表模板_XML生成XML报表模板的方法与示例

    利用XSLT、编程语言或模板引擎可生成XML报表模板:1. XSLT将源XML转换为结构化报表;2. Python等语言通过DOM操作动态构建XML;3. Jinja2等模板引擎支持变量与逻辑控制,实现灵活输出。 在XML中生成XML报表模板,实际上是指利用XML的结构化特性设计一个可复用的数据模板…

    2025年12月17日
    000
  • XML中如何解压XML字符串_XML解压XML字符串的操作方法

    先解压再解析XML。C#用GZipStream解压字节流并转字符串,Java用GZIPInputStream或InflaterInputStream读取压缩数据,结合StreamReader或BufferedReader还原为明文XML后,交由XDocument或DocumentBuilder解析;…

    2025年12月17日
    000
  • 如何用XML表示时间序列数据

    XML通过层级结构和属性封装时间戳与数值,适合表示含丰富元数据和不规则采样的时间序列数据,便于跨系统交换;其优势在于自描述性、可扩展性和平台无关性,但存在冗余大、解析慢等问题,海量数据时不如二进制格式或专用数据库高效。 在XML中表示时间序列数据,核心在于利用其层级结构和属性来封装每个时间点的数据值…

    2025年12月17日
    000
  • XML中如何反序列化XML对象_XML反序列化XML对象的操作方法

    答案:C#和Java可通过XmlSerializer和JAXB实现XML反序列化,需定义匹配类并使用特性/注解映射字段,确保无参构造函数和正确命名空间,最终将XML数据转换为对象。 在处理XML数据时,反序列化是将XML格式的数据转换为程序中的对象的过程。这一操作广泛应用于配置读取、网络通信和数据存…

    2025年12月17日
    000
  • XML中如何反序列化XML为对象_XML反序列化XML为对象的操作方法

    答案:XML反序列化是将XML数据转换为程序对象的过程,C#使用XmlSerializer类,Java使用JAXB实现。需定义与XML结构匹配的类,添加相应特性或注解,确保无参构造函数存在,通过Deserialize或unmarshal方法完成转换,注意标签名匹配、命名空间和集合类型处理,避免解析失…

    2025年12月17日
    000

发表回复

登录后才能评论
关注微信