zoukankan      html  css  js  c++  java
  • C# GDI+ 实现图片分隔

    public string ReturnHtml;
        // 不含扩展名的文件名
        private string _fileNameWithoutExtension;
        // 文件扩展名
        private string _fileExtension;
        // 文件所属的文件夹
        private string _fileDirectory;
        /// <summary>
        ///
        /// </summary>
        /// <param name="inputImgPath">文件虚拟路径</param>
        /// <param name="cropWidth">每块宽</param>
        /// <param name="cropHeight">每块高</param>
        /// <returns></returns>
        public string Cropping(string inputImgPath, int cropWidth, int cropHeight)
        {
            this._fileNameWithoutExtension = System.IO.Path.GetFileNameWithoutExtension(inputImgPath);
            this._fileExtension = System.IO.Path.GetExtension(inputImgPath);
            this._fileDirectory = System.IO.Path.GetDirectoryName(inputImgPath);

            // 装载要分隔的图片
            System.Drawing.Image inputImg = System.Drawing.Image.FromFile(Server.MapPath(inputImgPath));
            int imgWidth = inputImg.Width;
            int imgHeight = inputImg.Height;

            // 计算要分几格
            int widthCount = (int)Math.Ceiling((imgWidth * 1.00) / (cropWidth * 1.00));
            int heightCount = (int)Math.Ceiling((imgHeight * 1.00) / (cropHeight * 1.00));
            //----------------------------------------------------------------------
            ArrayList areaList = new ArrayList();

            System.Text.StringBuilder sb = new System.Text.StringBuilder();
            sb.Append("<table cellpadding='0' cellspacing='0' border='0'>");
            sb.Append(System.Environment.NewLine);

            int i = 0;
            for (int iHeight = 0; iHeight < heightCount; iHeight++)
            {
                sb.Append("<tr>");
                sb.Append(System.Environment.NewLine);
                for (int iWidth = 0; iWidth < widthCount; iWidth++)
                {
                    //string fileName = "<img src='http://localhost/SRcommBeijingFile/" + this._fileNameWithoutExtension + " _" + i.ToString() + this._fileExtension + "'>";
                    string fileName = string.Format("<img src='http://localhost/Example/Images/{0}_{1}{2}' />", this._fileNameWithoutExtension, i, this._fileExtension);
                    sb.Append("<td>" + fileName + "</td>");
                    sb.Append(System.Environment.NewLine);


                    int pointX = iWidth * cropWidth;
                    int pointY = iHeight * cropHeight;
                    int areaWidth = ((pointX + cropWidth) > imgWidth) ? (imgWidth - pointX) : cropWidth;
                    int areaHeight = ((pointY + cropHeight) > imgHeight) ? (imgHeight - pointY) : cropHeight;
                    string s = string.Format("{0};{1};{2};{3}", pointX, pointY, areaWidth, areaHeight);

                    Rectangle rect = new Rectangle(pointX, pointY, areaWidth, areaHeight);
                    areaList.Add(rect);
                    i++;
                }
                sb.Append("</tr>");
                sb.Append(System.Environment.NewLine);
            }

            sb.Append("</table>");


            //----------------------------------------------------------------------   

            for (int iLoop = 0; iLoop < areaList.Count; iLoop++)
            {
                Rectangle rect = (Rectangle)areaList[iLoop];
                string fileName = this._fileDirectory + "\\" + this._fileNameWithoutExtension + "_" + iLoop.ToString() + this._fileExtension;
                Bitmap newBmp = new Bitmap(rect.Width, rect.Height, PixelFormat.Format24bppRgb);
                Graphics newBmpGraphics = Graphics.FromImage(newBmp);
                newBmpGraphics.DrawImage(inputImg, new Rectangle(0, 0, rect.Width, rect.Height), rect, GraphicsUnit.Pixel);
                newBmpGraphics.Save();
                switch (this._fileExtension.ToLower())
                {
                    case ".jpg":
                    case ".jpeg":
                        newBmp.Save(Server.MapPath(fileName), ImageFormat.Jpeg);
                        break;
                    case ".gif":
                        newBmp.Save(Server.MapPath(fileName), ImageFormat.Gif);
                        break;
                }

            }
            inputImg.Dispose();
            string html = sb.ToString();
            return html;
        }

  • 相关阅读:
    SpringMVC—概述
    Spring—切点表达式
    Spring—Ioc
    Spring—spring概述
    MyBtis—原理及初始化
    mysql数据增删查授权
    mysql完整性约束
    mysql枚举类型与集合类型
    mysql字符类型
    mysql日期类型
  • 原文地址:https://www.cnblogs.com/cuihongyu3503319/p/649439.html
Copyright © 2011-2022 走看看