Asp.Net:动态调整图像大小

本文关键字:图像 调整 动态 Net Asp | 更新日期: 2023-09-27 18:12:20

我想为我的Asp创建一个图像大小调整机制。Net网站项目,如timthumb。我想这样做:

  • 设置size
  • 如果我需要这个图像的另一个大小,我可以给"only"大小,而无需再次上传。
我该怎么做呢,你有什么建议吗?

这是我的大小调整函数:

 public Bitmap Resize(Bitmap image, int newWidth, int newHeight, string message)
    {
        try
        {
            Bitmap newImage = new Bitmap(newWidth, Calculations(image.Width, image.Height, newWidth));
            using (Graphics gr = Graphics.FromImage(newImage))
            {
                gr.SmoothingMode = SmoothingMode.AntiAlias;
                gr.InterpolationMode = InterpolationMode.HighQualityBicubic;
                gr.PixelOffsetMode = PixelOffsetMode.HighQuality;
                gr.DrawImage(image, new Rectangle(0, 0, newImage.Width, newImage.Height));
                var myBrush = new SolidBrush(Color.FromArgb(64, 205, 205, 205));
                double diagonal = Math.Sqrt(newImage.Width * newImage.Width + newImage.Height * newImage.Height);
                var containerBox = new Rectangle();
                containerBox.X = (int)(diagonal / 10);
                var messageLength = (float)(diagonal / message.Length * 1);
                containerBox.Y = -(int)(messageLength / 1.6);
                var stringFont = new Font("verdana", messageLength);
                var sf = new StringFormat();
                var slope = (float)(Math.Atan2(newImage.Height, newImage.Width) * 180 / Math.PI);
                gr.RotateTransform(slope);
                gr.DrawString(message, stringFont, myBrush, containerBox, sf);
                return newImage;
            }
        }
        catch (Exception exc)
        {
            throw exc;
        }
    }

    public int Calculations(decimal orjWidth, decimal orjHeight, int newWidth)
    {
        decimal height = 0;
        decimal ratio = 0;

        if (newWidth < orjWidth)
        {
            ratio = orjWidth / newWidth;
            height = orjHeight / ratio;
            return height.To<int>();
        }
        if (orjWidth <= newWidth)
        {
            ratio = newWidth / orjWidth;
            height = orjHeight * ratio;
            return height.To<int>();
        }
        return height.To<int>();
    }

Asp.Net:动态调整图像大小

这是通过jQuery脚本完成的。

你可以通过使用一些可用的jQuery插件来实现相同的背景图像动态调整大小效果。如。: http://srobbin.com/jquery-plugins/backstretch/

同样,这可以通过使用普通的CSS3来完成:https://css-tricks.com/perfect-full-page-background-image/templatemmonster联盟团队致以最诚挚的问候!

你正在寻找ImageResizer库&step 4

如果您使用NuGet,您可以使用Install-Package ImageResizer.MvcWebConfig