图片编辑 1000+

接口声明

  1. { "name": "system.image" }

导入模块

  1. import image from '@system.image' const image = require('@system.image')

接口定义

image.getImageInfo(OBJECT)

获取图片信息

参数:

参数名类型必填说明
uriString图片地址,可以是数据文件或应用内的资源。如果是应用内资源,必须使用绝对路径
successFunction成功回调
failFunction失败回调
completeFunction执行结束后的回调
success 返回值:
参数名类型说明
uriString图片地址
widthInteger图片的宽度,单位为 px
heightInteger图片的高度,单位为 px
sizeLong图片的大小,单位为 Byte
fail 返回错误代码
错误码说明
202参数错误
300I/O 错误
301文件路径不存在

示例:

  1. image.getImageInfo({
  2. uri: 'internal://tmp/abc.jpg',
  3. success: function(data) {
  4. console.log(`handling success: size = ${data.size}`)
  5. },
  6. fail: function(data, code) {
  7. console.log(`handling fail, code = ${code}`)
  8. }
  9. })

image.compressImage(OBJECT)

压缩图片

参数:

参数名类型必填说明
uriString图片地址,可以是数据文件或应用内的资源。如果是应用内资源,必须使用绝对路径
qualityInteger图片的压缩质量,0-100 之间,默认是 75
ratioNumber尺寸压缩倍数,必须大于 0,尺寸会变为原图的 1/ratio 大小
formatString图片保存格式,支持 JPEG,PNG,WEBP 三种格式。默认使用 JPEG 格式
successFunction成功回调
failFunction失败回调
completeFunction执行结束后的回调
success 返回值:
参数名类型说明
uriString压缩后的图片地址
fail 返回错误代码
错误码说明
202参数错误
300I/O 错误
301文件路径不存在

示例:

  1. image.compressImage({
  2. uri: 'internal://tmp/abc.jpg',
  3. quality: 80,
  4. radio: 2, // 变为原图的1/2大小
  5. format: 'JPEG',
  6. success: function(data) {
  7. console.log(data.uri)
  8. },
  9. fail: function(data, code) {
  10. console.log(`handling fail, code = ${code}`)
  11. }
  12. })

image.applyOperations(OBJECT) 1000+

对图片按顺序执行编辑操作。

在顺序执行编辑操作列表中的操作时,上一步操作生成的结果会作为下一步操作的输入,坐标系也是以上一步操作生成的结果的左上角为坐标原点重新确定的。

参数:

参数名类型必填说明
uriString图片地址,可以是数据文件或应用内的资源。如果是应用内资源,必须使用绝对路径
operationsObjectArray编辑操作列表,按照先后顺序执行。如果未提供,则不会执行编辑操作,仅重新保存图片
qualityInteger图片的压缩质量,0-100 之间,默认是 75
formatString图片保存格式,支持 JPEG,PNG,WEBP 三种格式。默认使用 JPEG 格式
successFunction成功回调
failFunction失败回调
completeFunction执行结束后的回调

支持的编辑操作

  • 图片裁剪

    参数名类型必填说明
    actionString必须是 crop
    xNumber裁剪的起始点的 x 坐标,默认是 0
    yNumber裁剪的起始点的 y 坐标,默认是 0
    widthNumber裁剪的图片宽度
    heightNumber裁剪的图片高度
  • 图片缩放

    参数名类型必填说明
    actionString必须是 scale
    scaleXNumber宽度的缩放比率,缩放后宽度会变成原图的 scaleX 倍。默认是 1
    scaleYNumber高度的缩放比率,缩放后高度会变成原图的 scaleY 倍。默认是 1
  • 图片旋转

    参数名类型必填说明
    actionString必须是 rotate
    degreeNumber旋转的角度
success 返回值:
参数名类型说明
uriString生成的图片的地址
fail 返回错误代码
错误码说明
202参数错误
300I/O 错误
301文件路径不存在

示例:

  1. image.applyOperations({
  2. uri: 'internal://cache/123.png',
  3. operations: [
  4. {
  5. action: 'scale',
  6. scaleX: 0.5,
  7. scaleY: 0.5
  8. },
  9. {
  10. action: 'crop',
  11. width: 200,
  12. height: 200
  13. },
  14. {
  15. action: 'rotate',
  16. degree: 90
  17. }
  18. ],
  19. quality: 90,
  20. format: 'webp',
  21. success: function(data) {
  22. console.log(`handling success: ${data.uri}`)
  23. },
  24. fail: function(data, code) {
  25. console.log(`handling fail, code = ${code}`)
  26. }
  27. })

image.editImage(OBJECT)

打开编辑器来编辑图片。目前支持选择图片范围并裁剪。

参数:

参数名类型必填说明
uriString图片地址,可以是数据文件或应用内的资源。如果是应用内资源,必须使用绝对路径
aspectRatioX 1050+Integer用于限定裁剪结果的宽高比,该参数指定宽高比中宽度比率。例如:aspectRatioX为16,aspectRatioY为9,则限定裁剪结果必须是16:9的图
aspectRatioY 1050+Integer用于限定裁剪结果的宽高比,该参数指定宽高比中宽度比率。例如:aspectRatioX为16,aspectRatioY为9,则限定裁剪结果必须是16:9的图
successFunction成功回调
failFunction失败回调
cancelFunction取消回调   
completeFunction执行结束后的回调
success 返回值:
参数名类型说明
uriString生成的图片的地址
fail 返回错误代码:
错误码说明
202参数错误
300I/O 错误
301文件路径不存在

示例:

  1. image.editImage({
  2. uri: 'internal://cache/123.png',
  3. success: function(data) {
  4. console.log(`handling success: ${data.uri}`)
  5. },
  6. cancel: function() {
  7. console.log('handling cancel')
  8. },
  9. fail: function(data, code) {
  10. console.log(`handling fail, code = ${code}`)
  11. }
  12. })

image.getExifAttributes(OBJECT) 1040+

获取图片的exif信息。支持的格式:JPEG,DNG,CR2,NEF,NRW,ARW,RW2,ORF,PEF,SRW,RAF,HEIF。

参数:

参数名类型必填说明
uriString图片地址,可以是数据文件或应用内的资源。如果是应用内资源,必须使用绝对路径
successFunction成功回调
failFunction失败回调
completeFunction执行结束后的回调
success返回值:
参数名类型说明
uriString图片地址
attributesObject图片的exif信息
fail返回错误代码
错误码说明
202参数错误
300I/O错误
301文件路径不存在

示例:

  1. image.getExifAttributes({
  2. uri: 'internal://cache/123.png',
  3. success: function (data) {
  4. console.log(`handling success: ${JSON.stringify(data.attributes)}`)
  5. },
  6. fail: function (data, code) {
  7. console.log(`handling fail, code = ${code}`)
  8. }
  9. })

image.setExifAttributes(OBJECT) 1040+

设置图片的exif信息。设置操作会直接在所给图片上进行,不会生成新的图片。支持的格式:JPEG。

参数:

参数名类型必填说明
uriString图片地址,可以是数据文件或应用内的资源。如果是应用内资源,必须使用绝对路径
attributesObject要设置的exif属性列表 
successFunction成功回调
failFunction失败回调
completeFunction执行结束后的回调
attributes接受的exif属性:

Artist, BitsPerSample, Compression, Copyright, DateTime, ImageDescription, ImageLength, ImageWidth, JPEGInterchangeFormat, JPEGInterchangeFormatLength, Make, Model, Orientation, PhotometricInterpretation, PlanarConfiguration, PrimaryChromaticities, ReferenceBlackWhite, ResolutionUnit, RowsPerStrip, SamplesPerPixel, Software, StripByteCounts, StripOffsets, TransferFunction, WhitePoint, XResolution, YCbCrCoefficients, YCbCrPositioning, YCbCrSubSampling, YResolution, ApertureValue, BrightnessValue, CFAPattern, ColorSpace, ComponentsConfiguration, CompressedBitsPerPixel, Contrast, CustomRendered, DateTimeDigitized, DateTimeOriginal, DeviceSettingDescription, DigitalZoomRatio, ExifVersion, ExposureBiasValue, ExposureIndex, ExposureMode, ExposureProgram, ExposureTime, FNumber, FileSource, Flash, FlashEnergy, FlashpixVersion, FocalLength, FocalLengthIn35mmFilm, FocalPlaneResolutionUnit, FocalPlaneXResolution, FocalPlaneYResolution, GainControl, ISOSpeedRatings, ImageUniqueID, LightSource, MakerNote, MaxApertureValue, MeteringMode, NewSubfileType, OECF, PixelXDimension, PixelYDimension, RelatedSoundFile, Saturation, SceneCaptureType, SceneType, SensingMethod, Sharpness, ShutterSpeedValue, SpatialFrequencyResponse, SpectralSensitivity, SubfileType, SubSecTime, SubSecTimeDigitized, SubSecTimeOriginal, SubjectArea, SubjectDistance, SubjectDistanceRange, SubjectLocation, UserComment, WhiteBalance, GPSAltitude, GPSAltitudeRef, GPSAreaInformation, GPSDOP, GPSDateStamp, GPSDestBearing, GPSDestBearingRef, GPSDestDistance, GPSDestDistanceRef, GPSDestLatitude, GPSDestLatitudeRef, GPSDestLongitude, GPSDestLongitudeRef, GPSDifferential, GPSImgDirection, GPSImgDirectionRef, GPSLatitude, GPSLatitudeRef, GPSLongitude, GPSLongitudeRef, GPSMapDatum, GPSMeasureMode, GPSProcessingMethod, GPSSatellites, GPSSpeed, GPSSpeedRef, GPSStatus, GPSTimeStamp, GPSTrack, GPSTrackRef, GPSVersionID, InteroperabilityIndex, ThumbnailImageLength, ThumbnailImageWidth, DNGVersion, DefaultCropSize, ThumbnailImage, PreviewImageStart, PreviewImageLength, AspectFrame, SensorBottomBorder, SensorLeftBorder, SensorRightBorder, SensorTopBorder, ISO, JpgFromRaw

success返回值:
参数名类型说明
uriString图片地址
fail返回错误代码
错误码说明
202参数错误
300I/O错误
301文件路径不存在

示例:

  1. image.setExifAttributes({
  2. uri: 'internal://cache/123.jpg',
  3. attributes:{
  4. Orientation:'1',
  5. Make:'quick app'
  6. },
  7. success: function (data) {
  8. console.log(`handling success`)
  9. },
  10. fail: function (data, code) {
  11. console.log(`handling fail, code = ${code}`)
  12. }
  13. })

后台运行限制

禁止使用。后台运行详细用法参见后台运行 脚本