• 大小: 723KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-12
  • 语言: C#
  • 标签: 图片  

资源简介

图片旋转,放大,缩小,拖动,合并,截图等,此版本中图片取自数据

资源截图

代码片段和文件信息

using System;
using System.Drawing;
using System.Drawing.Imaging;
using System.IO;

namespace ItcastCater
{
    /// 
    /// 图片处理
    /// 

    public class CImageLibrary
    {

        /// 
        /// 检查图片返回的结果
        /// 

        public enum ValidateImageResult { OK InvalidFileSize InvalidImageSize }

        /// 
        /// 检查图片文件大小
        /// 

        /// 图片文件
        /// 最大文件大小
        /// 最大宽度
        /// 最大高度
        /// 返回检查结果
        public static ValidateImageResult ValidateImage(string file int MAX_FILE_SIZE int MAX_WIDTH int MAX_HEIGHT)
        {
            byte[] bs = File.ReadAllBytes(file);
            double size = (bs.Length / 1024);

            //大于50KB
            if (size > MAX_FILE_SIZE) return ValidateImageResult.InvalidFileSize;

            Image img = null;
            try
            {
                img = Image.FromFile(file);
                if (img.Width > MAX_WIDTH || img.Height > MAX_HEIGHT)
                    return ValidateImageResult.InvalidImageSize;
                else
                    return ValidateImageResult.OK;
            }
            finally
            {
                img.Dispose();
            }
        }

        /// 
        /// 按宽度比例缩小图片
        /// 

        /// 原始图片
        /// 最大宽度
        /// 
        public static Image ResizeImage(Image imgSource int MAX_WIDTH int MAX_HEIGHT)
        {
            Image imgOutput = imgSource;

            Size size = new Size(0 0); //用于存储按比例计算后的宽和高参数

            if (imgSource.Width <= 3 || imgSource.Height <= 3) return imgSource; //3X3大小的图片不转换

            //按宽度缩放图片
            if (imgSource.Width > MAX_WIDTH) //计算宽度
            {
                double rate = MAX_WIDTH / (double)imgSource.Width; //计算宽度比例因子

                size.Width = Convert.ToInt32(imgSource.Width * rate);
                size.Height = Convert.ToInt32(imgSource.Height * rate);
                imgOutput = imgSource.GetThumbnailImage(size.Width size.Height null IntPtr.Zero);
            }

            //按高度缩放图片
            if (imgOutput.Height > MAX_HEIGHT)//计算高度
            {
                double rate = MAX_HEIGHT / (double)imgOutput.Height; //计算宽度比例因子

                size.Width = Convert.ToInt32(imgOutput.Width * rate);
                size.Height = Convert.ToInt32(imgOutput.Height * rate);
                imgOutput = imgSource.GetThumbnailImage(size.Width size.Height null IntPtr.Zero);
            }

            return imgOutput;
        }

        /// 
        /// 图片转换为数组
        /// 

        /// 图片文件
        /// <

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       2569  2016-03-25 16:34  ImgNew\Img.sln

    ..A..H.     82944  2016-03-30 16:12  ImgNew\Img.suo

     文件     157175  2016-03-02 09:27  ImgNew\pl\bin\Debug\FA20163292733.png

     文件      83456  2016-03-28 17:21  ImgNew\pl\bin\Debug\ImageManage.exe

     文件      91648  2016-03-28 17:21  ImgNew\pl\bin\Debug\ImageManage.pdb

     文件      11600  2016-03-30 16:12  ImgNew\pl\bin\Debug\ImageManage.vshost.exe

     文件        490  2014-01-13 21:31  ImgNew\pl\bin\Debug\ImageManage.vshost.exe.manifest

     文件      87552  2016-02-26 16:43  ImgNew\pl\bin\Debug\pl.pdb

     文件        490  2014-01-13 21:31  ImgNew\pl\bin\Debug\pl.vshost.exe.manifest

     文件       7412  2016-02-24 09:02  ImgNew\pl\CImageLibrary.cs

     文件       3559  2016-03-01 17:27  ImgNew\pl\DevTreelist.cs

     文件      40842  2016-03-28 17:00  ImgNew\pl\FrmImage.cs

     文件      34014  2016-03-28 15:36  ImgNew\pl\FrmImage.Designer.cs

     文件      25330  2016-03-28 15:36  ImgNew\pl\FrmImage.resx

     文件      24147  2016-02-26 14:21  ImgNew\pl\ImageClass.cs

     文件       5596  2016-03-25 16:44  ImgNew\pl\ImageManege.csproj

     文件       9198  2016-03-02 09:01  ImgNew\pl\ImageWatermark.cs

     文件      78386  2016-03-28 08:40  ImgNew\pl\obj\x86\Debug\DesignTimeResolveAssemblyReferences.cache

     文件       7178  2016-03-28 17:21  ImgNew\pl\obj\x86\Debug\DesignTimeResolveAssemblyReferencesInput.cache

     文件      83456  2016-03-28 17:21  ImgNew\pl\obj\x86\Debug\ImageManage.exe

     文件        578  2016-03-28 17:21  ImgNew\pl\obj\x86\Debug\imagemanage.exe.licenses

     文件      91648  2016-03-28 17:21  ImgNew\pl\obj\x86\Debug\ImageManage.pdb

     文件       1081  2016-03-30 16:12  ImgNew\pl\obj\x86\Debug\ImageManege.csproj.FileListAbsolute.txt

     文件        978  2016-03-28 15:37  ImgNew\pl\obj\x86\Debug\ImageManege.csproj.GenerateResource.Cache

     文件      93031  2016-03-28 14:01  ImgNew\pl\obj\x86\Debug\ImageManege.csprojResolveAssemblyReference.cache

     文件       3445  2016-02-26 17:10  ImgNew\pl\obj\x86\Debug\pl.csproj.FileListAbsolute.txt

     文件       1036  2016-02-26 13:19  ImgNew\pl\obj\x86\Debug\pl.csproj.GenerateResource.Cache

     文件      75903  2016-02-26 16:41  ImgNew\pl\obj\x86\Debug\pl.csprojResolveAssemblyReference.cache

     文件        569  2016-02-26 16:43  ImgNew\pl\obj\x86\Debug\pl.exe.licenses

     文件        180  2016-03-28 14:01  ImgNew\pl\obj\x86\Debug\pl.Properties.Resources.resources

............此处省略105个文件信息

评论

共有 条评论