思路

1.获取需裁剪图片的地址

2.跳转到裁剪页面

3.裁剪成功返回新图片地址

4.替换原有图片地址

增加修饰和事件

str += '<li class="tu image" id="'+imgType+'_'+i+'" style="background: url('+ret.list[i].path+')no-repeat;background-size:cover;" onclick="showClip(\''+imgType+'_'+i+'\',\''+ret.list[i].path+'\')"><input type="hidden"  value="'+ret.list[i].path+'"><div class="badge" onclick="delPic(this,\''+imgType+'\')"><i class="aui-iconfont aui-icon-close"></i></div></li>';

上面是动态生成的图片html布局数据,增加一个id标识id="'+imgType+'_'+i+'",增加一个点击事件onclick="showClip(\''+imgType+'_'+i+'\',\''+ret.list[i].path+'\')"

打开裁剪页面,并传入参数element_id和img_url

// 裁剪图片
function showClip(element_id,img_url) {
// 处理图片裁剪
openWinPro('clip','element_id:'+element_id+',img_url:'+img_url);
}

裁剪页面进行处理

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport"
content="maximum-scale=1.0,minimum-scale=1.0,user-scalable=0,width=device-width,initial-scale=1.0">
<meta name="format-detection" content="telephone=no,email=no,date=no,address=no">
<title>图片裁剪</title>
<link rel="stylesheet" type="text/css" href="../css/api.css">
<link rel="stylesheet" type="text/css" href="../css/aui.2.0.css">
<style>
body{
background: #fff;
}
.aui-btn{
padding:0.3rem 2rem;
} .footer{
position: fixed;
z-index: 999;
bottom: 1rem;
left:20%;
} </style> </head>
<body>
<header class="aui-bar aui-bar-nav aui-margin-b-15 header">
<a class="aui-pull-left aui-btn" onclick="api.closeWin({});">
<span class="aui-iconfont aui-icon-left"></span>
</a>
<div class="aui-title">图片裁剪</div>
</header> <div class="aui-list-item-inner aui-list-item-center aui-list-item-btn footer">
<div class="aui-btn aui-btn-info aui-margin-r-5" onclick="fnSave();">提交</div>
<div class="aui-btn aui-btn-danger aui-margin-l-5" onclick="fnReset();">重置</div>
</div> <script type="text/javascript" src="../script/api.js"></script>
<script type="text/javascript" src="../script/common.js"></script>
<script type="text/javascript"> var FNImageClip;
var element_id;
apiready = function() {
var header=$api.dom('header');
$api.fixStatusBar(header); element_id = api.pageParam.element_id;
var img_url = api.pageParam.img_url;
// alert(element_id+"----"+img_url); FNImageClip = api.require('FNImageClip');
FNImageClip.open({
rect: {
x: 0,
y: document.querySelector('.header').offsetHeight,
w: api.winWidth,
h: api.winHeight - 150
},
srcPath: img_url,
style: {
mask: '#fff',
clip: {
w: 250,
h: 250,
x: 60,
y: 80,
borderColor: '#0f0',
borderWidth: 1,
appearance: 'rectangle'
}
}
});
}; function fnSave(){
FNImageClip.save({
destPath: 'fs://image/temp'+new Date().getTime()+'.png',
copyToAlbum: false,
quality: 1
},function(ret, err){
if(ret) {
// 提示裁剪成功
toast("裁剪成功");
// 发送事件监听
api.sendEvent({
name: 'clip_success',
extra: {
element_id: element_id,
new_img_url: ret.destPath
}
}); // 关闭页面
setTimeout("api.closeWin({});",1000); } else{
alert('裁剪失败,请重试');
}
});
} function fnReset(){
FNImageClip.reset();
}
</script>
</body>
</html>

裁剪页面获取参数,负责裁剪图片,并发送事件监听和传递参数

api.sendEvent({
name: 'clip_success',
extra: {
element_id: element_id,
new_img_url: ret.destPath
}
});

原页面增加监听事件和处理

    // 监听图片裁剪
api.addEventListener({
name: 'clip_success'
}, function(ret, err) {
if (ret) {
$("#"+ret.value.element_id).css('background-image','url('+ret.value.new_img_url+')');
$("#"+ret.value.element_id+" input").val(ret.value.new_img_url);
}
});

一切都ok了

裁剪前

裁剪中

裁剪后

apiCloud中图片裁剪模块FNImageClip的使用的更多相关文章

  1. 从web图片裁剪出发:了解H5中的canvas

    本篇内容不针对canvas文档对每个api进行逐个的详解! 本篇内容不针对canvas文档对每个api进行逐个的详解! 本篇内容不针对canvas文档对每个api进行逐个的详解! 重说三,好了,现在进 ...

  2. python 1: 解决linux系统下python中的matplotlib模块内的pyplot输出图片不能显示中文的问题

    问题: 我在ubuntu14.04下用python中的matplotlib模块内的pyplot输出图片不能显示中文,怎么解决呢? 解决: 1.指定默认编码为UTF-8: 在python代码开头加入如下 ...

  3. node.js中使用imagemagick进行图片裁剪压缩

    node.js中使用imagemagick进行图片裁剪压缩 安装imagemagick sudo apt-get install imagemagick or wget http://www.imag ...

  4. HTML5本地图片裁剪并上传

    最近做了一个项目,这个项目中需要实现的一个功能是:用户自定义头像(用户在本地选择一张图片,在本地将图片裁剪成满足系统要求尺寸的大小).这个功能的需求是:头像最初剪切为一个正方形.如果选择的图片小于规定 ...

  5. Android项目中的各个模块框架设计

    作为Android开发,现对项目开发中的各个模块搭建,梳理如下: Android UI框架,开发人员需要达到专家级 网络框架 浏览框架 图片加载框架 图片裁剪压缩工具类 客户端并发框架 线程池设计 ( ...

  6. PIL 中的 Image 模块

    转载:http://www.cnblogs.com/way_testlife/archive/2011/04/20/2022997.html   PIL 中的 Image 模块 本文是节选自 PIL ...

  7. iOS常见用户头像的圆形图片裁剪常见的几种方法

    在开发中,基本上APP的用户头像的处理都需要把用户所上传的方形图片,处理为圆形图片.在这里就总结三种常见的处理圆形图片的方法. 1.使用位图上下文 2.使用UIView的layer进行处理 3.使用r ...

  8. Cropper – 简单的 jQuery 图片裁剪插件

    Cropper 是一个简单的 jQuery 图像裁剪插件.它支持选项,方法,事件,触摸(移动),缩放,旋转.输出的裁剪数据基于原始图像大小,这样你就可以用它们来直接裁剪图像. 如果你尝试裁剪跨域图像, ...

  9. 自己积累的一些Emgu CV代码(主要有图片格式转换,图片裁剪,图片翻转,图片旋转和图片平移等功能)

    using System; using System.Drawing; using Emgu.CV; using Emgu.CV.CvEnum; using Emgu.CV.Structure; na ...

随机推荐

  1. ecshop后台增加模块菜单详细教程(图)

    我们有时候针对ecshop如此开发,想在后台加一些菜单,最模板以前提供过教程,但是并非很系统,今天最模板抛砖引玉图文教程告诉大家:如何在ecshop后台增加模块菜单! 首先需要修改四个文件:inc_p ...

  2. Java获取当前第几周【转】

    本文copy自:http://swxzqsd.blog.sohu.com/156208509.html 作者:camelcanoe String today = "2010-01-11&qu ...

  3. c# 回调委托

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...

  4. 《python核心编程》读书笔记--第15章 正则表达式

    15.1引言与动机 处理文本和数据是一件大事.正则表达式(RE)为高级文本匹配模式,为搜索-替换等功能提供了基础.RE是由一些字符和特殊符号组成的字符串,它们描述了这些字符和字符串的某种重复方式,因此 ...

  5. SQL生成规则数

    --------------------------开始----------------------------开始值DECLARE @start INT = 1--结束值DECLARE @end I ...

  6. sqlserver2008安装教程

    这几天因为需要,一直想安装sql server 2008来作为Web后台的数据库进行些实验,但总是没有时间,今天终于有时间了,便安装了SQL Server 2008,以下是我的安装的步骤,希望对于有需 ...

  7. 2016年12月9日 星期五 --出埃及记 Exodus 21:4

    2016年12月9日 星期五 --出埃及记 Exodus 21:4 If his master gives him a wife and she bears him sons or daughters ...

  8. 循环嵌套,while循环,穷举迭代循环

    一.循环嵌套 简单的就是说,在一个for循环里嵌入多个小for循环. 其中,在打矩形.三角形和乘法口诀表之类的题目中,大for循环一般表示的是行数,其余的小for循环式每一行中的内容. 二.while ...

  9. mysql 语句

    mysql sql语句大全 1.说明:创建数据库 CREATE DATABASE database-name 2.说明:删除数据库 drop database dbname 3.说明:备份sql se ...

  10. Struts2的标签库(三)——控制标签

    Struts2的标签库(三) --控制标签 1.if/elseif/else标签 用于分支控制,取代JSP中的if语句,根据一个boolean(test属性的值)值判断是否进行下一步运算或者输出等. ...