NetSkycn.Drawing/ImageZoom.cs

(开头部分) 4KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

using System;
using System.Drawing;
using System.Collections.Generic;
using System.Text;

namespace NetSkycn.Drawing
{
    /// <summary>
    /// 提供图片缩放方面的方法
    /// </summary>
    public sealed class ImageZoom
    {
        private ImageZoom()
        {
        }
        /// <summary>
        /// 返回不大于指定尺寸的最合适大小的图片
        /// </summary>
        /// <param name="sourceImage">原图片</param>
        /// <param name="width">新图片宽度,以像素为单位</param>
        /// <param name="height">新图片高度,以像素为单位</param>
        /// <param name="keepRate">是否保持与原图片一致的宽高比</param>
        /// <returns></returns>
        public static Image Zoom(Image sourceImage, int width, int height, bool keepRate)
        {
            if (keepRate)//是否保持与原图片一致的宽高比
            {
                double sourceWHRate = (double)sourceImage.Width / sourceImage.Height;//原图片宽高比
                int tempWidth = (int)(height * sourceWHRate);//
                if (tempWidth <= width)
                {
                    width = tempWidth;
                }
                else
                {
                    int tempHeight = (int)(width / sourceWHRate);
                    height = tempHeight;
                }
            }
            Image image = new Bitmap(width, height);
            Graphics g = Graphics.FromImage(image);
            g.DrawImage(sourceImage, 0, 0);
            g.Dispose();
            return image;
        }
        /// <summary>
        /// 返回不大于指定尺寸的最合适大小的图片
        /// </summary>
        /// <param name="sourceImage">原图片</param>
        /// <param name="targetSize">目标尺寸</param>
        /// <param name="keepRate">是否保持与原图片一致的宽高比</param>
        /// <returns></returns>
        public static Image Zoom(Image sourceImage, Size targetSize, bool keepRate)
        {
            return Zoom(sourceImage, targetSize.Width, targetSize.Height, keepRate);
        }
        /// <summary>
        /// 返回不大于指定尺寸的最合适大小的图片
        /// </summary>
        /// <param name="sourceImage">原始图片</param>
后面还有 46 行代码,解锁后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明

AI 解读 AI

登录后可用,每次 10 算力,解读结果公开显示在下面。

还没有人解读过这个文件。