程序裁剪图片的方法

/// <summary>
        
/// 裁剪图片
        
/// </summary>
        
/// <param name="x">开始点x坐标</param>
        
/// <param name="y">开始点y坐标</param>
        
/// <param name="int_Width">宽度</param>
        
/// <param name="int_Height">高度</param>
        
/// <param name="input_ImgUrl">原图</param>
        
/// <param name="out_ImgUrl">生成图</param>

         public   void  ImgReduceCutOut( int  x, int  y, int  int_Width,  int  int_Height,  string  input_ImgUrl,  string  out_ImgUrl)
        
{

            
int CutOut_Width = 0// 裁剪的宽度
            int CutOut_Height = 0// 裁剪的高度
            int level = 100//缩略图的质量 1-100的范围

            CutOut_Width 
= int_Width;
            CutOut_Height 
= int_Height;
            System.Drawing.Image oldimage 
= System.Drawing.Image.FromFile(Server.MapPath(input_ImgUrl));
            Bitmap bm 
= new Bitmap(oldimage);

            ImageCodecInfo[] ImageCode 
= ImageCodecInfo.GetImageEncoders();
            ImageCodecInfo ii 
= null;
            
foreach (ImageCodecInfo i in ImageCode)
            
{
                
if (i.MimeType == "image/jpeg") ii = i;
            }

            EncoderParameters ep 
= new EncoderParameters();
            ep.Param[
0= new EncoderParameter(Encoder.Quality, (long)level);

            
if (x + CutOut_Width >= bm.Width)
                CutOut_Width 
= bm.Width - x;
            
if (y + CutOut_Height >= bm.Height)
                CutOut_Height 
= bm.Height - y;
            Rectangle cloneRect 
= new Rectangle(x, y, CutOut_Width, CutOut_Height);
            PixelFormat format 
= bm.PixelFormat;
            Bitmap cloneBitmap 
= bm.Clone(cloneRect, format);

            cloneBitmap.Save(Server.MapPath(out_ImgUrl), ii, ep);
            ep.Dispose();
        }
 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值