Asp.Net中图片大小的缩放

本文介绍了一种在ASP.NET中实现图片根据容器大小自动缩放的方法。通过一个简单的函数,可以确保图片在缩放过程中保持原始的比例,避免失真。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在Asp.Net中显示图片的时候,如果给定一个固定大小的容器,如<Table>,图片的大小如何根据容器的大小进行比例缩放呢。以下是一个比较简单的函数,根据图片的宽高比例进行计算,缩放后保持比例不变。

//ViewSize 外框大小
        //ImageSize 图片的实际大小
        public Size Resize(Size ViewSize, Size ImageSize)
        {
             Size MySize = new Size();
            if(ViewSize.Width > ViewSize.Height)//宽大于高
            {
                if(ImageSize.Width > ImageSize.Height)//按比例
                {
                    float scale = ImageSize.Height / (float)ImageSize.Width;
                    if(ViewSize.Height / (float)ViewSize.Width < scale)
                    {
                         MySize.Height = ViewSize.Height;
                         MySize.Width = (int)(ViewSize.Height / scale);
                     }
                    else
                    {
                         MySize.Width = ViewSize.Width;
                         MySize.Height = (int)(ViewSize.Width * scale);
                     }
                 }
                else if(ImageSize.Height > ImageSize.Width)//非比例
                {
                    float scale = ImageSize.Width / (float)ImageSize.Height;
                     MySize.Height = ViewSize.Height;
                     MySize.Width = (int)(ViewSize.Height * scale);
                }
                else
                {
                     MySize.Height = ViewSize.Height;
                     MySize.Width = ViewSize.Height;
                 }
             }
            else if(ViewSize.Width < ViewSize.Height)//高大于宽
            {
                if(ImageSize.Width < ImageSize.Height)//按比例
                {
                    float scale = ImageSize.Width / (float)ImageSize.Height;
                    if(ViewSize.Width / (float)ViewSize.Height < scale)
                    {
                         MySize.Width = ViewSize.Width;
                         MySize.Height = (int)(ViewSize.Width / scale);
                     }
                    else
                    {
                         MySize.Height = ViewSize.Height;
                         MySize.Width = (int)(ViewSize.Height * scale);
                     }
                 }
                else if(ImageSize.Height < ImageSize.Width)//非比例
                {
                    float scale = ImageSize.Height / (float)ImageSize.Width;
                     MySize.Width = ViewSize.Width;
                     MySize.Height = (int)(ViewSize.Width * scale);
                 }
                else
                {
                     MySize.Height = ViewSize.Width;
                     MySize.Width = ViewSize.Width;
                 }
             }
            else
            {
                if(ImageSize.Width > ImageSize.Height)//宽大于高
                {
                    float scale = ImageSize.Height / (float)ImageSize.Width;
                     MySize.Width = ViewSize.Width;
                     MySize.Height = (int)(ViewSize.Width * scale);
                 }
                else if(ImageSize.Width < ImageSize.Height)//高大于宽
                {
                    float scale = ImageSize.Width / (float)ImageSize.Height;
                     MySize.Height = ViewSize.Height;
                     MySize.Width = (int)(ViewSize.Height * scale);
                 }
                else
                {
                     MySize.Height = ViewSize.Height;
                     MySize.Width = ViewSize.Height;
                 }
             }
            return MySize;
         }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值