比如一个图片宽是300,我想要中间的200,通过程序两边各裁100
有办法实现吗,分不多了,还请各位朋友帮帮忙

解决方案 »

  1.   

    网上有现成的代码,给你一个地址:
    http://apps.hi.baidu.com/share/detail/5915918
      

  2.   


    /**/
        /// <summary>
        /// 获取图片指定部分
        /// </summary>
        /// <param name="pPath">图片路径</param>
        /// <param name="pSavePath">保存路径</param>
        /// <param name="pPartStartPointX">目标图片开始绘制处的坐标X值(你这里可以是100)</param>
        /// <param name="pPartStartPointY">目标图片开始绘制处的坐标Y值(通常为0)</param>
        /// <param name="pPartWidth">目标图片的宽度(你这里可以是200)</param>
        /// <param name="pPartHeight">目标图片的高度</param>
        /// <param name="pOrigStartPointX">原始图片开始截取处的坐标X值(通常是0)</param>
        /// <param name="pOrigStartPointY">原始图片开始截取处的坐标Y值(通常是0)</param>
        /// <param name="pFormat">保存格式,通常可以是jpeg</param>
        public void GetPart(string pPath, string pSavedPath,  int pPartStartPointX, int pPartStartPointY, int pPartWidth, int pPartHeight, int pOrigStartPointX, int pOrigStartPointY)
        {
            using (System.Drawing.Image originalImg = System.Drawing.Image.FromFile(pPath))
            {
                Bitmap partImg = new Bitmap(pPartWidth, pPartHeight);
                Graphics graphics = Graphics.FromImage(partImg);
                //设置高质量插值法  
                graphics.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.High;
                //设置高质量,低速度呈现平滑程度  
                graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
                //清空一下画布  
                graphics.Clear(Color.White);
               Rectangle destRect = new Rectangle(new Point(pPartStartPointX, pPartStartPointY), new Size(pPartWidth, pPartHeight));//目标位置
                Rectangle origRect = new Rectangle(new Point(pOrigStartPointX, pOrigStartPointY), new Size(pPartWidth, pPartHeight));//原图位置(默认从原图中截取的图片大小等于目标图片的大小)
                 graphics.DrawImage(originalImg, destRect, origRect, GraphicsUnit.Pixel);
                originalImg.Dispose();
                if (File.Exists(pSavedPath))
                {
                    File.SetAttributes(pSavedPath, FileAttributes.Normal);
                    File.Delete(pSavedPath);
                }
                partImg.Save(pSavedPath, ImageFormat.Jpeg);            graphics.Dispose();
                partImg.Dispose();
            }
            GC.Collect();    }