1. Xiuxiu 组件
  2.  
  3. import React, { Component } from 'react';
  4.  
  5. class XiuXiu extends Component {
  6. componentDidMount() {
  7. const {closeModal, imageUrl, uploadUrl, formData} = this.props;
  8. /* 第1个参数是加载编辑器div容器,第2个参数是编辑器类型,第3个参数是div容器宽,第4个参数是div容器高*/
  9. xiuxiu.embedSWF('altContent', 1, '700px', '520px');
  10. // 修改为您自己的图片上传接口
  11. xiuxiu.setUploadURL(uploadUrl);
  12. xiuxiu.setUploadType(2);
  13. xiuxiu.setUploadDataFieldName('file');
  14. xiuxiu.setUploadArgs(formData);
  15. xiuxiu.onInit = function () {
  16. xiuxiu.loadPhoto(imageUrl);
  17. };
  18. xiuxiu.onUploadResponse = function (data) {
  19. closeModal(true);
  20. };
  21. xiuxiu.onBatchUploadComplete = function () {
  22. closeModal(true);
  23. };
  24. xiuxiu.onClose = function(id) {
  25. closeModal(false);
  26. };
  27. xiuxiu.onUpload = function(id) {
  28. closeModal(true);
  29. };
  30. }
  31. render() {
  32. return (
  33. <div id='altContent'>
  34. </div>
  35. );
  36. }
  37. }
  38.  
  39. export default XiuXiu;
  40.  
  41. XiuxiuComponent
  1. class XiuXiuModal extends Component {
  2. state = {
  3. visible: false,
  4. }
  5. showModal = () => {
  6. this.setState({visible: true});
  7. }
  8. closeModal = (isEdit) => {
  9. const {imageUrl} = this.props;
  10. this.props.onClose(imageUrl, isEdit);
  11. this.setState({visible: false});
  12. }
  13. render() {
  14. const {children, policyImage, imagePath} = this.props;
  15. const formData = {
  16. signature: policyImage.signature,
  17. OSSAccessKeyId: policyImage.accessid,
  18. policy: policyImage.policy,
  19. key: imagePath,
  20. success_action_status: '200',
  21. };
  22. return (
  23. <a onClick={this.showModal}>
  24. {children}
  25. {this.state.visible && <Modal wrapClassName='xiuxiu-wrapper' closable={false} width='700px' footer={null} title={null} visible >
  26. <XiuXiu uploadUrl={policyImage.host} formData={formData} closeModal={this.closeModal} {...this.props} />
  27. </Modal>}
  28. </a>
  29. );
  30. }
  31. }

最终引入

  1. import XiuXiu from 'components/XiuXiu';
    class ItemBox extends Component {
  2. componentDidMount () {
  3. const {folderFormatType, folderId, actions: {policyActions: {getImagePolicy}, ownActions: {loadMaterial}}} = this.props;
  4. loadMaterial(folderId, undefined, true, folderFormatType);
  5. getImagePolicy();
  6. }
  7. cancelEditImage = (imageUrl, isEdit) => {
  8. const {actions: {ownActions: {editMaterial}}, materials} = this.props;
  9. const item = find(materials, {coverImage: imageUrl});
  10. if(isEdit) {
  11. editMaterial({
  12. id: item.id,
  13. version: item.version + 0.1,
  14. });
  15. }
  16. }
  17. render () {
  18. const {actions: {ownActions: {addMaterial, loadMaterial}},
  19. page, policyImage, materials, folderId, folder, profile} = this.props;
  20. return (
  21. <XiuXiuModal onClose={this.cancelEditImage} imagePath={item.path} policyImage={policyImage} imageUrl={item.url}>
  22. 编辑图片
  23. </XiuXiuModal>
  24. );
  25. }
  26. }

  

注意:

1、引入美图秀秀必须加载上传图片接口

2、设置crossdomain.xml

下载crossdomain.xml文件,把解压出来的crossdomain.xml文件放在您保存图片或图片来源的服务器根目录下,
比如: http://example.com.cn,那么crossdomain.xml的路径为:http://example.com.cn/crossdomain.xml。
需要注意的是crossdomain.xml必须部署于站点根目录下才有效, crossdomain.xml的目的是授权来自美图域下的flash向您的站点上传图片或者从您的站点加载图片。
【备注】由于本地测试会被flash安全沙箱拦住,请自行搭建web服务器,在web 环境中测试。

  1.  

美图秀秀web开发文档的更多相关文章

  1. 美图秀秀 web开发图片编辑器

    美图秀秀web开发平台 http://open.web.meitu.com/wiki/ 1.环境配置 1.1.设置crossdomain.xml 下载crossdomain.xml文件,把解压出来的c ...

  2. web开发文档整理

    django 1.11版中文文档 django 1.11版英文文档 Redis命令参考文档 Axios中文文档 Axios英文官方文档 Django REST Framework官方文档 Vue.js ...

  3. Web图片编辑控件开发文档-Xproer.ImageEditor

    版权所有 2009-2014 荆门泽优软件有限公司 保留所有权利 官方网站:http://www.ncmem.com 产品首页:http://www.ncmem.com/webplug/image-e ...

  4. thinkphp + 美图秀秀api 实现图片裁切上传,带数据库

    思路: 1.数据库 创建test2 创建表img,字段id,url,addtime 2.前台页: 1>我用的是bootstrap 引入必要的js,css 2>引入美图秀秀的js 3.后台: ...

  5. 美图秀秀api实现图片的裁剪及美化

    美图秀秀不仅有PC版.手机版等客户端的软件,还有Web开方接口,可以在web页面上调用美图秀秀的api接口,实现图片的编辑.像淘宝.网易.qq空间.新浪微博等大厂都使用过该接口. 官网地址:http: ...

  6. 简易的美图秀秀利用别人的so库

    在实际开发中,有时候时间短,任务量大,可以查看类似的apk,将行apk反编译,通过看源码分析,用里面的JNI代码! 本案例中用了美图秀秀的JNI.java和jni.so链接库 项目中调用别人写的c代码 ...

  7. C#微信开发文档

    C#微信开发文档 开发前准备 微信公众平台链接: https://mp.weixin.qq.com/cgi-bin/home?t=home/index&lang=zh_CN 开发初期我们使用测 ...

  8. QM项目开发文档整理

    QM项目开发文档整理 前言 在W公司工作4个多月,庆幸接触到的全是"硬"项目,真枪实干,技术.经验.能力都得到了很大提升. QM项目 此项目WEB前端学到的东西很多,对PHP项目的 ...

  9. 美图秀秀DBA谈MySQL运维及优化

    美图秀秀DBA谈MySQL运维及优化 https://mp.weixin.qq.com/s?__biz=MzI4NTA1MDEwNg==&mid=401797597&idx=2& ...

随机推荐

  1. 【AC自动机】bzoj4327: JSOI2012 玄武密码

    题目思路没话讲:主要是做题时候的细节和经验 Description 在美丽的玄武湖畔,鸡鸣寺边,鸡笼山前,有一块富饶而秀美的土地,人们唤作进香河.相传一日,一缕紫气从天而至,只一瞬间便消失在了进香河中 ...

  2. Linux下打包解压命令

    tar 压缩: tar -cvjpf etc.tar.bz2 /etc //-c为创建一个打包文件,相应的-f后面接创建的文件的名称,使用了.tar.bz2后缀,-j标志使用bzip2压缩,最后面为具 ...

  3. JDK1.8 HashMap$TreeNode.rotateLeft 红黑树左旋

    红黑树介绍 1.节点是红色或黑色. 2.根节点是黑色. 3.每个叶子节点都是黑色的空节点(NIL节点). 4 每个红色节点的两个子节点都是黑色.(从每个叶子到根的所有路径上不能有两个连续的红色节点) ...

  4. Linux中同步与异步、阻塞与非阻塞概念以及五种IO模型

    1.概念剖析 相信很多从事linux后台开发工作的都接触过同步&异步.阻塞&非阻塞这样的概念,也相信都曾经产生过误解,比如认为同步就是阻塞.异步就是非阻塞,下面我们先剖析下这几个概念分 ...

  5. CodeForce--Benches

    A. Benches   There are nn benches in the Berland Central park. It is known that aiai people are curr ...

  6. Android后台的linux一直保持唤醒状态,不进入睡眠

    由于要做Android手机的电池续航测试,是不能插usb的,所以把case放到sh文件中,之后push到手机里,执行的. 但是出现个问题,假如case中有很长时间的sleep操作,关闭手机屏幕,这样l ...

  7. WPF触控程序的开发(一)——有用的资源

    迟来的一篇博文,每次都要撞到月末,这个月实在太忙了,除了在公司上班,还接了个单子,用wpf做一个触屏软件,类似iphone的相册功能.先说搭建开发环境吧,我是不可能去买个平板来的,再说基于win7的程 ...

  8. HDU 5239 Doom 线段树

    题意: 有\(n(1 \leq n \leq 10^5)\)个数,和\(m(1 \leq m \leq 10^5)\)操作,和一个计算\(s\),一切运算都在模\(MOD\)进行的. 操作\(l, \ ...

  9. CodeForces 543D 树形DP Road Improvement

    题意: 有一颗树,每条边是好边或者是坏边,对于一个节点为x,如果任意一个点到x的路径上的坏边不超过1条,那么这样的方案是合法的,求所有合法的方案数. 对于n个所有可能的x,输出n个答案. 分析: 题解 ...

  10. Python3下基于bs4和sqlalchemy的爬虫实现

    本文来自网易云社区 作者:王贝 小学生现在都在学python了,作为专业程序员当然不能落下了,所以,快马加鞭,周六周末在家学起了python3,python3的基本语法比较简单,相比于Java开发更加 ...