FNImageClip

来自于:官方立即使用

open save close reset

论坛示例

为帮助用户更好更快的使用模块,论坛维护了一个示例,示例中包含示例代码、知识点讲解、注意事项等,供您参考。

概述

FNImageClip 模块封装了图片裁剪功能。该模块是 imageClip 模块的优化版。

FNImageClip - 图1

实例widget下载地址

open

打开图片裁剪

open({params}, callback(ret, err))

params

rect:

  • 类型:JSON 类型
  • 描述:(可选项)模块的位置及尺寸
  • 内部字段:
  1. {
  2. x: 0, //(可选项)数字类型;模块左上角的 x 坐标(相对于所属的 Window 或 Frame);默认值:0
  3. y: 0, //(可选项)数字类型;模块左上角的 y 坐标(相对于所属的 Window 或 Frame);默认值:0
  4. w: 320, //(可选项)数字类型;模块的宽度;默认值:所属的 Window 或 Frame 的宽度
  5. h: 480 //(可选项)数字类型;模块的高度;默认值:所属的 Window 或 Frame 的高度
  6. }

srcPath:

  • 类型:字符串类型
  • 描述:源图片路径,要求本地路径(fs://、widget://)

highDefinition:

  • 类型:布尔
  • 描述:(可选项)截图时是否截取与原图分辨率一致的图
  • 默认:false

isMinWidth:

  • 类型:布尔
  • 描述:(可选项)是否开启裁剪框不限制最小宽度
  • 默认:false

isMinHeight:

  • 类型:布尔
  • 描述:(可选项)是否开启裁剪框不限制最小高度
  • 默认:false

isHideGrid:

  • 类型:布尔
  • 描述:(可选项)是否隐藏中间横竖网格线
  • 默认:false

style:

  • 类型:JSON 类型
  • 描述:图片裁剪的样式设置
  • 内部字段:
  1. {
  2. mask: '#888', //(可选项)字符串类型;图片裁剪控件遮罩层背景,支持 rgb,rgba,#;默认:#888
  3. clip: {
  4. w: 100, //(可选项)数字类型;裁剪区域的宽度,当 appearance 为 circular 时,w 为半径;默认:rect.w / 2
  5. h: 100, //(可选项)数字类型;裁剪区域的高度,当 appearance 为 circular 时,h 无效;默认:w
  6. x: 50, //(可选项)数字类型;裁剪区域左侧相对于裁剪控件左侧的距离;默认:(rect.w - w) / 2
  7. y: 50, //(可选项)数字类型;裁剪区域顶部相对于裁剪控件顶部的距离;默认:(rect.h - h) / 2
  8. borderColor: '#0f0', //(可选项)字符串类型;裁剪区域边线颜色,支持 rgb,rgba,#;默认:透明
  9. borderWidth: 1, //(可选项)数字类型;裁剪区域边线;默认:0
  10. appearance: 'circular', //(可选项)字符串类型;裁剪区域的形状,支持 circular | rectangle;默认:rectangle
  11. }
  12. }

mode:

  • 类型:字符串类型
  • 描述:(可选项)裁剪模式
  • 默认:all
  • 取值范围:
    • clip:裁剪框可移动或缩放,图片固定位置和大小,当 appearance 值为 circular 时,无法改变大小
    • image:图片可以移动或缩放,裁剪框固定位置和大小
    • all:裁剪框可移动或缩放,图片可移动或缩放,该模式下用户的放大操作只对图片有效,裁剪框只能通过拖动改变大小,当 appearance 值为 circular 时,无法改变大小

fixedOn:

  • 类型:字符串类型
  • 描述:(可选项)模块视图添加到指定 frame 的名字(只指 frame,传 window 无效)
  • 默认:模块依附于当前 window

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. status: //布尔类型;操作成功状态值,true|false
  3. }

示例代码

  1. var FNImageClip = api.require('FNImageClip');
  2. FNImageClip.open({
  3. rect: {
  4. x: 0,
  5. y: 0,
  6. w: api.winWidth,
  7. h: api.winHeight
  8. },
  9. srcPath: 'fs://imageClip/image.png',
  10. style: {
  11. mask: '#888',
  12. clip: {
  13. w: 100,
  14. h: 100,
  15. x: 50,
  16. y: 50,
  17. borderColor: '#0f0',
  18. borderWidth: 1,
  19. appearance: 'rectangle'
  20. }
  21. },
  22. fixedOn: api.frameName
  23. }, function(ret, err) {
  24. if (ret) {
  25. alert(JSON.stringify(ret));
  26. } else {
  27. alert(JSON.stringify(err));
  28. }
  29. });

补充说明

FNImageClip 同时只能运行一个实例,当重复调用 open 时,会将已存在的 FNImageClip 实例弹出到当前窗口的最上层

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

save

保存截图

save({params}, callback(ret, err))

params

destPath:

  • 类型:字符串类型
  • 描述:保存图片路径,要求本地路径(fs://)

copyToAlbum:

  • 类型:布尔类型
  • 描述:(可选项)是否将结果同时保存到系统相册
  • 默认:false

quality:

  • 类型:数字类型
  • 描述:(可选项)保存图片的质量,取值范围 0 - 1,【注】只针对jpg格式图片有效
  • 默认:1

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. destPath: //字符串类型;图片保存到指定路径后的绝对路径,若保存失败则为该参数为 undefined
  3. albumPath: //字符串类型;图片保存到相册后的绝对路径,若保存失败则该参数为 undefined
  4. }

示例代码

  1. var FNImageClip = api.require('FNImageClip');
  2. FNImageClip.save({
  3. destPath: 'fs://imageClip/result.png',
  4. copyToAlbum: false,
  5. quality: 1
  6. }, function(ret, err) {
  7. if (ret) {
  8. alert(JSON.stringify(ret));
  9. } else {
  10. alert(JSON.stringify(err));
  11. }
  12. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

close

关闭截图器

close()

示例代码

  1. var FNImageClip = api.require('FNImageClip');
  2. FNImageClip.close();

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

reset

重置裁剪区域,恢复到初始打开时的状态

reset()

示例代码

  1. var FNImageClip = api.require('FNImageClip');
  2. FNImageClip.reset();

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

论坛示例

为帮助用户更好更快的使用模块,论坛维护了一个示例,示例中包含示例代码、知识点讲解、注意事项等,供您参考。