zoukankan      html  css  js  c++  java
  • 图片裁剪

    首先,要下载Jcrop组件,这里是下载地址:http://deepliquid.com/content/Jcrop.htm

    先看一下我们想要效果,还是不错的:

    应该是这个效果吧!下面看一下js代码,最让人头疼的应该就是这些代码,简直白天不懂夜的黑啊:

     1 <head runat="server">
     2     <title></title>
     3     <script src="js/jquery-1.5.1.min.js" type="text/javascript"></script>
     4     <script src="js/jquery.Jcrop.js" type="text/javascript"></script>
     5     <link href="css/jquery.Jcrop.css" rel="stylesheet" type="text/css" />
     6     <script type="text/javascript" language="javascript">
     7         $(function () {
     8             $("#TestImage").Jcrop({
     9                 onChange: updateCoords,
    10                 onSelect: updateCoords
    11             });
    12 
    13             $("#BtnSaveAvatar").click(function () {
    14                 var Imgname = document.getElementById("TestImage").alt;
    15                 $.ajax({
    16                     url: 'Handler3.ashx',
    17                     data: { 'name': Imgname, 'x': $("#x").val(), 'y': $("#y").val(), 'w': $("#w").val(), 'h': $("#h").val() },
    18                     datatype: "text/json",
    19                     type: 'post',
    20                     success: function (o) { window.location.href = "Login.aspx?url=" + o; }
    21                 });
    22                 return false;
    23             });
    24         });
    25         function updateCoords(c) {
    26             $("#x").val(c.x);
    27             $("#y").val(c.y);
    28             $("#w").val(c.w);
    29             $("#h").val(c.h); 
    30             };
    31     </script>
    32 </head>
    33 <body>
    34     <div>
    35     <input id="x" name="x" type="hidden"/>       
    36      <input id="y" name="y" type="hidden"/>        
    37      <input id="w" name="w" type="hidden"/>        
    38      <input id="h" name="h" type="hidden"/>        
    39      <img src="IMG/1.jpg"  alt="IMG/1.jpg" id="TestImage" style="float: left;"/>
    40      <input class="input_btn" id="BtnSaveAvatar" value="确定保存" type="submit"/>
    41     </div>
    42 </body>
    43 </html>

    这里Login.aspx页面是用来显示我们裁剪的那部分图像,裁剪成功后跳转到这个页面:

      <img src="<%=Request["url"] %>" alt="" />
    然后再看一下的我们的C#代码,拨开黑夜!

    public class ImageCut
    {
        public int X;
        public int Y;
        public int Width;
        public int Height;
        public ImageCut(int x, int y, int width, int height)
        {
            this.X = x;
            this.Y = y;
            this.Width = width;
            this.Height = height;
        }
    
        public Bitmap KiCut(Bitmap bmp)
        {
            if (bmp == null) { return null; }
            int w = bmp.Width;
            int h = bmp.Height; 
            if (X >= w || Y >= h) { return null; } 
            if (X + Width > w) { Width = w - X; } 
            if (Y + Height > h) { Height = h - Y; }
            
            try
            {
                Bitmap bmpOut = new Bitmap(Width, Height, PixelFormat.Format24bppRgb);//创建指定大小的Bitmap
                Graphics g = Graphics.FromImage(bmpOut);//从指定的图像创建画图实例
                g.DrawImage(bmp, new Rectangle(0, 0, Width, Height), new Rectangle(X, Y, Width, Height), GraphicsUnit.Pixel);//开始画图
                g.Dispose();
                return bmpOut;
            }
            catch
            {
                return null;
            }
        }
    }
    
    public class Handler3 : IHttpHandler {
        
        public void ProcessRequest (HttpContext context) {
            context.Response.ContentType = "text/plain";
            string name=context.Request["name"];
            string xstr = context.Request["x"];
            string ystr = context.Request["y"];
            string wstr = context.Request["w"];
            string hstr = context.Request["h"];
            string sourceFile = context.Server.MapPath(name);
            string savePath = "CutImage/" + Guid.NewGuid() + ".jpg";
            int x = 0; int y = 0; int w = 1; int h = 1;
            try
            {
                x = int.Parse(xstr);
                y = int.Parse(ystr);
                w = int.Parse(wstr);
                h = int.Parse(hstr);
            }
            catch { }
            ImageCut ic = new ImageCut(x, y, w, h);
            Bitmap cuted = ic.KiCut(new System.Drawing.Bitmap(sourceFile));
            string cutPath = context.Server.MapPath(savePath);
            cuted.Save(cutPath,ImageFormat.Jpeg);
            context.Response.Write(savePath);
        }
     
        public bool IsReusable {
            get {
                return false;
            }
        }
    
    }
    

      当我们

  • 相关阅读:
    C结构体之位域(位段)
    Linux 有效用户组(effective group)与初始用户组(initial group)(参考鸟哥私房菜)
    牛顿迭代法求平方根
    操作系统 第5章 哲学家问题
    面试题3:数组中重复的数字
    某讯实习生后台开发一面总结
    面试题目4:二维数组中的查找
    Java基础知识之基本概念
    Maven常用命令
    Maven仓库
  • 原文地址:https://www.cnblogs.com/wywnet/p/3335655.html
Copyright © 2011-2022 走看看