zoukankan      html  css  js  c++  java
  • 利用Grahics 进行图片裁剪

    这两天做了一个图片对比工具,里面要处理两张大的图片,所以要对图片先进行裁剪最开始用了

      /// <summary>
            /// 裁剪图片
            /// </summary>
            /// <param name="imagePath"/>
            /// <param name="savePath">"c:images"</param>
            private List<string> DefClipImage(string imagePath, string savePath)
            {

                var fileInfo = new FileInfo(imagePath);
                if (!fileInfo.Exists)
                    throw new Exception("图片" + imagePath + "不存在!");
                var savePathList = new List<string>();
                var spath = savePath + fileInfo.Name.Replace(fileInfo.Extension, string.Empty);
                try
                {
                    var bitmap = new Bitmap(imagePath);
                    var format = bitmap.PixelFormat;
                    Bitmap cloneBitmap = bitmap.Clone(_cloneRect1, format);
                    var tempPath = spath + "_1.jpg";
                    cloneBitmap.Save(tempPath);
                    savePathList.Add(tempPath);
                    cloneBitmap.Dispose();
                    cloneBitmap = bitmap.Clone(_cloneRect2, format);
                    tempPath = spath + "_2.jpg";
                    cloneBitmap.Save(tempPath);
                    savePathList.Add(tempPath);
                    cloneBitmap.Dispose();
                    cloneBitmap = bitmap.Clone(_cloneRect3, format);
                    tempPath = spath + "_3.jpg";
                    cloneBitmap.Save(tempPath);
                    savePathList.Add(tempPath);
                    cloneBitmap.Dispose();
                    cloneBitmap = bitmap.Clone(_cloneRect4, format);
                    tempPath = spath + "_4.jpg";
                    cloneBitmap.Save(tempPath);
                    savePathList.Add(tempPath);
                    cloneBitmap.Dispose();
                    bitmap.Dispose();
                    return savePathList;

                }
                catch
                {
                    throw new Exception("图片" + imagePath + "处理失败!");

                }

            }

    但是速度太慢。

    后来发现用grahics 会快很多

       private void test()
            {
              
                Bitmap bitmap = new Bitmap(Application.StartupPath + @"Image1.jpg");
                var bt = new Bitmap(7500, 3750);
              
                var grahics = Graphics.FromImage(bt);
                grahics.DrawImage(bitmap, _cloneRect1, _cloneRect1,GraphicsUnit.Pixel);
                bt.Save(Application.StartupPath + "1.jpg");

                grahics.DrawImage(bitmap, _cloneRect1, _cloneRect2, GraphicsUnit.Pixel);
                bt.Save(Application.StartupPath + "2.jpg");

                grahics.DrawImage(bitmap, _cloneRect1, _cloneRect3, GraphicsUnit.Pixel);
                bt.Save(Application.StartupPath + "3.jpg");

                grahics.DrawImage(bitmap, _cloneRect1, _cloneRect4, GraphicsUnit.Pixel);
                bt.Save(Application.StartupPath + "4.jpg");

                grahics.Dispose();
                bt.Dispose();
            }

    最后上个做的工具的效果图,采用开源地图控件:)

  • 相关阅读:
    jquery prop()
    如何写好论文摘要
    人最大的缺点莫过于自己看不到自己的缺点,反而对别人吹毛求疵
    一个人的终身职业,是他亲手制成的雕像
    VmWare虚拟机增加硬盘容量的方法
    学术论文的定义、特点、写作方法以及写作格式
    为利益而利益,为计较而计较,就会使人变得心胸狭隘、自私自利。
    改变不了别人,只有改变自己
    一个汉字作为一个字符进行字符串长度计算和切割
    WINSERVER2003 配置PHP时笔记
  • 原文地址:https://www.cnblogs.com/aoldman/p/3471585.html
Copyright © 2011-2022 走看看