`

Asp.Net C# 图片缩放 等比例放大缩小透明背景

阅读更多
        public byte[] ZoomPicture(Image SourceImage, int TargetWidth, int TargetHeight)
        {
            int IntWidth; //新的图片宽
            int IntHeight; //新的图片高
            try
            {
                //System.Drawing.Imaging.ImageFormat format = SourceImage.RawFormat;    //图片格式
                System.Drawing.Bitmap SaveImage = new System.Drawing.Bitmap(TargetWidth, TargetHeight, PixelFormat.Format32bppArgb);
                Graphics g = Graphics.FromImage(SaveImage);
                // g.Clear(Color.Transparent);
                g.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighQuality; //图片质量

                //计算缩放图片的大小 
                if (SourceImage.Width > TargetWidth && SourceImage.Height <= TargetHeight)//宽度比目的图片宽度大,长度比目的图片长度小
                {
                    IntWidth = TargetWidth;
                    IntHeight = (IntWidth * SourceImage.Height) / SourceImage.Width;
                }
                else if (SourceImage.Width <= TargetWidth && SourceImage.Height > TargetHeight)//宽度比目的图片宽度小,长度比目的图片长度大
                {
                    IntHeight = TargetHeight;
                    IntWidth = (IntHeight * SourceImage.Width) / SourceImage.Height;
                }
                else if (SourceImage.Width <= TargetWidth && SourceImage.Height <= TargetHeight) //长宽比目的图片长宽都小
                {
                    IntHeight = SourceImage.Width;
                    IntWidth = SourceImage.Height;
                }
                else//长宽比目的图片的长宽都大
                {
                    IntWidth = TargetWidth;
                    IntHeight = (IntWidth * SourceImage.Height) / SourceImage.Width;
                    if (IntHeight > TargetHeight)//重新计算
                    {
                        IntHeight = TargetHeight;
                        IntWidth = (IntHeight * SourceImage.Width) / SourceImage.Height;
                    }
                }
                //绘制图片
                g.DrawImage(SourceImage, (TargetWidth - IntWidth) / 2, (TargetHeight - IntHeight) / 2, IntWidth, IntHeight);

                using(MemoryStream stream = new MemoryStream())
                {
                    SaveImage.Save(stream, ImageFormat.Png);
                    //销毁对象
                    SaveImage.Dispose();
                    SourceImage.Dispose();
                    g.Dispose();
                    return stream.ToArray();
                }
            }
            catch (Exception ex)
            {
                HxSoft.Common.Config.Err(ex);
            }
            return null;
        }

因为我这里需要缓存图片,所有使用了 byte[]作为返回值,如果是存储图片之类的可以直接返回Image类型(fun里面的SaveImage对象)

我这里使用了质量高的效果,如果使用场景都是很小的图片,可以将图片质量降低以换取更高的性能

 

分享到:
评论

相关推荐

    asp.net图片自动剪切放大缩小

    ASP.NET图片自动剪切、放大和缩小是一项常见的图像处理任务,尤其在网页设计和开发中。这个技术允许用户上传图片并根据需要动态调整其尺寸,适应不同的显示需求。以下是关于这个主题的一些关键知识点: 1. **ASP...

    asp.net 图片放大缩小

    以上是ASP.NET中实现图片放大缩小的基本流程。实际应用中,还需要考虑异常处理、性能优化以及用户体验等因素。例如,可以添加缓存机制以避免重复计算,或者提供一个用户友好的界面来允许用户自定义缩放比例。 随着...

    asp.net core mvc 图片的处理、图片缩放

    在ASP.NET Core MVC中处理和缩放图片是常见的需求,尤其是在构建Web应用时,如电子商务网站、社交媒体平台等。本文将详细讲解如何在ASP.NET Core MVC中进行图片处理和缩放。 1. **依赖库** 在ASP.NET Core中处理...

    asp.net 网页图片切换效果

    asp.net C# javascript, javascript图片切换效果asp.net C# javascript, javascript图片切换效果asp.net C# javascript, javascript图片切换效果asp.net C# javascript, javascript图片切换效果

    ASP.NET c# 日期控件

    ASP.NET c# 日期控件,很好用,测试通过 下载后解压放到站点文件夹下,引用时注意路径 前台: &lt;title&gt;&lt;/title&gt; &lt;script language="javascript" type="text/javascript" src="../My97DatePicker/WdatePicker.js"&gt;...

    asp.net jQuery实现图片等比例自动缩放

    **************图片预加载插件****************** ...scaling 是否等比例自动缩放 width 图片最大高 height 图片最大宽 loadpic 加载中的图片路径 */ jQuery.fn.LoadImage=function(scaling,width,height,loadpic)

    asp.net C# 利用FTP 远程下载文件

    在ASP.NET中,C#是一种常用的编程语言,用于构建动态Web应用程序。FTP(File Transfer Protocol)则是一种标准网络协议,用于在Internet上进行文件传输。本教程将详细讲解如何使用C#在ASP.NET环境中实现FTP远程下载...

    .NET C# asp.net 微信网页扫码支付完整接口及Demo

    .NET C# ASP.NET 微信网页扫码支付是一个广泛应用于电商、服务行业的支付方式,它允许用户通过微信App扫描二维码快速完成支付。这个完整的接口及Demo提供了实现这一功能所需的所有技术细节,包括请求处理、响应验证...

    BBS论坛asp.net+c#源码

    【标题】"BBS论坛asp.net+c#源码"是一个基于ASP.NET技术和C#编程语言构建的电子讨论区系统。ASP.NET是微软公司推出的用于构建动态网站、Web应用程序和服务的框架,而C#则是一种现代化的面向对象编程语言,常与ASP...

    ASP.NET 完整项目10个(C#)

    ASP.NET 是微软公司推出的用于构建Web应用程序的框架,它提供了丰富的功能和强大的工具,使得开发者可以使用C#等编程语言高效地创建动态、交互式的网页应用。在这个ASP.NET 4.0 完整项目(10个)的压缩包中,你将...

    ASP.NET C# ACCESS简单的用户登录实例

    ASP.NET 是微软开发的一种用于构建Web应用程序的框架,它结合了C#编程语言,使得开发者可以使用.NET Framework的强大功能来创建动态网站、Web服务和Web应用程序。C#是一种面向对象的编程语言,语法清晰,安全性高,...

    asp.net c#面试题

    全部都是面试的宝典; c# asp.net .net .net面试题 c#面试题 c# asp.net .net .net面试题 c#面试题

    asp.net 图表 c#图表 chart 统计图(c#版含实例)

    在ASP.NET中,C#是一种常用的编程语言,用于构建动态Web应用程序。在许多情况下,我们需要在这些应用中展示数据,而图表就是一种直观且高效的数据可视化工具。"asp.net 图表 c#图表 chart 统计图(c#版含实例)"这个...

    asp.net c#代码 上传图片到服务器端和上传到数据库中 并产生缩略图显示在网页中

    在这个特定的知识点中,我们将深入探讨如何使用ASP.NET C#来实现图片上传至服务器、存储到数据库以及生成缩略图并显示在网页上的过程。 首先,上传图片到服务器端是一个基本的文件上传操作。在ASP.NET中,可以使用`...

    ASP.NET C#网上书城系统

    ASP.NET C#网上书城系统是一个基于微软的ASP.NET技术和C#编程语言开发的电子商务平台。这个系统提供了全面的功能,让初学者能够了解并实践Web应用程序的开发过程,特别是对于网上书店这种特定业务场景的应用。 ASP...

    ASP.Net C# 开发笔记

    本书是 ASP.NET C# 开发笔记,涵盖了 ASP.NET 开发中的各个方面,包括开发前的准备、实战项目、SQL2000 数据库设计开发、模块设置、安装部署等。作者通过实际项目经验,将 ASP.NET 开发中的各种技术和经验分享出来,...

    asp.net C# PDF阅读器源码

    ASP.NET C# PDF阅读器源码是一个用于在Web应用程序中展示PDF文档的解决方案。这个源码实例使用C#编程语言,结合ASP.NET框架,为用户提供一个在线查看PDF文件的功能,无需依赖外部插件或者第三方软件。以下是这个项目...

    asp.net c#课程设计 附详细文档 大学生兼职系统 实现登陆增删改查

    在这个课程设计中,我们将深入探讨如何使用ASP.NET和C#来构建一个功能完备的大学生兼职系统,该系统涵盖了用户登录、数据增删改查等核心功能。 一、项目结构与技术栈 1. ASP.NET MVC框架:该项目可能采用了MVC...

    网站 小项目 asp.net C#

    【ASP.NET与C#在网站开发中的应用】 ASP.NET是由微软公司推出的用于构建Web应用程序的框架,它基于.NET Framework,提供了丰富的功能和高效的语言支持,其中C#是ASP.NET最常用的编程语言。这个名为"网站 小项目 asp...

    .Net实现上传图片按比例自动缩小或放大的方法

    在.NET框架中实现图片上传时,按比例自动缩小或放大的功能是一项常见的需求,尤其是在Web应用程序中。该功能的实现不仅可以提升用户体验,还可以优化页面加载速度,避免因图片过大导致的带宽浪费。接下来将详细介绍...

Global site tag (gtag.js) - Google Analytics