快應(yīng)用 圖片編輯

2020-08-08 15:40 更新

接口聲明

{"name": "system.image"}

導(dǎo)入模塊

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

接口定義image.getImageInfo(OBJECT)

獲取圖片信息

參數(shù):

參數(shù)名 類型 必填 說明
uri String 圖片地址,可以是數(shù)據(jù)文件或應(yīng)用內(nèi)的資源。如果是應(yīng)用內(nèi)資源,必須使用絕對(duì)路徑
success Function 成功回調(diào)
fail Function 失敗回調(diào)
complete Function 執(zhí)行結(jié)束后的回調(diào)
success返回值:
參數(shù)名 類型 說明
uri String 圖片地址
width Integer 圖片的寬度,單位為px
height Integer 圖片的高度,單位為px
size Long 圖片的大小,單位為Byte
fail返回錯(cuò)誤代碼
錯(cuò)誤碼 說明
202 參數(shù)錯(cuò)誤
300 I/O錯(cuò)誤
301 文件路徑不存在

示例:

image.getImageInfo({
  uri: 'internal://tmp/abc.jpg',
  success: function (data) {
    console.log(`handling success: size = ${data.size}`)
  },
  fail: function (data, code) {
    console.log(`handling fail, code = ${code}`)
  }
})

image.compressImage(OBJECT)

壓縮圖片

參數(shù):

參數(shù)名 類型 必填 說明
uri String 圖片地址,可以是數(shù)據(jù)文件或應(yīng)用內(nèi)的資源。如果是應(yīng)用內(nèi)資源,必須使用絕對(duì)路徑
quality Integer 圖片的壓縮質(zhì)量,0-100之間,默認(rèn)是75
ratio Number 尺寸壓縮倍數(shù),必須大于0,尺寸會(huì)變?yōu)樵瓐D的1/ratio大小
format String 圖片保存格式,支持JPEG,PNG,WEBP三種格式。默認(rèn)使用JPEG格式
success Function 成功回調(diào)
fail Function 失敗回調(diào)
complete Function 執(zhí)行結(jié)束后的回調(diào)
success返回值:
參數(shù)名 類型 說明
uri String 壓縮后的圖片地址
fail返回錯(cuò)誤代碼
錯(cuò)誤碼 說明
202 參數(shù)錯(cuò)誤
300 I/O錯(cuò)誤
301 文件路徑不存在

示例:

image.compressImage({
  uri: 'internal://tmp/abc.jpg',
  quality: 80,
  radio: 2, // 變?yōu)樵瓐D的1/2大小
  format: 'JPEG',
  success: function (data) {
    console.log(data.uri)
  },
  fail: function (data, code) {
    console.log(`handling fail, code = ${code}`)
  }
})

image.applyOperations(OBJECT) 1000+

對(duì)圖片按順序執(zhí)行編輯操作。

在順序執(zhí)行編輯操作列表中的操作時(shí),上一步操作生成的結(jié)果會(huì)作為下一步操作的輸入,坐標(biāo)系也是以上一步操作生成的結(jié)果的左上角為坐標(biāo)原點(diǎn)重新確定的。

參數(shù):

參數(shù)名 類型 必填 說明
uri String 圖片地址,可以是數(shù)據(jù)文件或應(yīng)用內(nèi)的資源。如果是應(yīng)用內(nèi)資源,必須使用絕對(duì)路徑
operations ObjectArray 編輯操作列表,按照先后順序執(zhí)行。如果未提供,則不會(huì)執(zhí)行編輯操作,僅重新保存圖片
quality Integer 圖片的壓縮質(zhì)量,0-100之間,默認(rèn)是75
format String 圖片保存格式,支持JPEG,PNG,WEBP三種格式。默認(rèn)使用JPEG格式
success Function 成功回調(diào)
fail Function 失敗回調(diào)
complete Function 執(zhí)行結(jié)束后的回調(diào)

支持的編輯操作

1) 圖片裁剪

參數(shù)名 類型 必填 說明
action String 必須是crop
x Number 裁剪的起始點(diǎn)的x坐標(biāo),默認(rèn)是0
y Number 裁剪的起始點(diǎn)的y坐標(biāo),默認(rèn)是0
width Number 裁剪的圖片寬度
height Number 裁剪的圖片高度

2) 圖片縮放

參數(shù)名 類型 必填 說明
action String 必須是scale
scaleX Number 寬度的縮放比率,縮放后寬度會(huì)變成原圖的scaleX倍。默認(rèn)是1
scaleY Number 高度的縮放比率,縮放后高度會(huì)變成原圖的scaleY倍。默認(rèn)是1

3) 圖片旋轉(zhuǎn)

參數(shù)名 類型 必填 說明
action String 必須是rotate
degree Number 旋轉(zhuǎn)的角度
success返回值:
參數(shù)名 類型 說明
uri String 生成的圖片的地址
fail返回錯(cuò)誤代碼
錯(cuò)誤碼 說明
202 參數(shù)錯(cuò)誤
300 I/O錯(cuò)誤
301 文件路徑不存在

示例:

image.applyOperations({
  uri: 'internal://cache/123.png',
  operations: [
    {
      action: 'scale',
      scaleX: 0.5,
      scaleY: 0.5
    },
    {
      action: 'crop',
      width: 200,
      height: 200
    },
    {
      action: 'rotate',
      degree: 90,
    }
  ],
  quality: 90,
  format: 'webp',
  success: function (data) {
    console.log(`handling success: ${data.uri}`)
  },
  fail: function (data, code) {
    console.log(`handling fail, code = ${code}`)
  }
})

image.editImage(OBJECT)

打開編輯器來編輯圖片。目前支持選擇圖片范圍并裁剪。

參數(shù):

參數(shù)名 類型 必填 說明
uri String 圖片地址,可以是數(shù)據(jù)文件或應(yīng)用內(nèi)的資源。如果是應(yīng)用內(nèi)資源,必須使用絕對(duì)路徑
aspectRatioX 1050+ Integer 用于限定裁剪結(jié)果的寬高比,該參數(shù)指定寬高比中寬度比率。例如:aspectRatioX為16,aspectRatioY為9,則限定裁剪結(jié)果必須是16:9的圖
aspectRatioY 1050+ Integer 用于限定裁剪結(jié)果的寬高比,該參數(shù)指定寬高比中寬度比率。例如:aspectRatioX為16,aspectRatioY為9,則限定裁剪結(jié)果必須是16:9的圖
success Function 成功回調(diào)
fail Function 失敗回調(diào)
cancel Function 取消回調(diào)   
complete Function 執(zhí)行結(jié)束后的回調(diào)
success返回值:
參數(shù)名 類型 說明
uri String 生成的圖片的地址
fail返回錯(cuò)誤代碼:
錯(cuò)誤碼 說明
202 參數(shù)錯(cuò)誤
300 I/O錯(cuò)誤
301 文件路徑不存在

示例:

image.editImage({
  uri: 'internal://cache/123.png',
  success: function (data) {
    console.log(`handling success: ${data.uri}`)
  },
  cancel: function () {
    console.log('handling cancel')
  },
  fail: function (data, code) {
    console.log(`handling fail, code = ${code}`)
  }
})

image.getExifAttributes(OBJECT) 1040+

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

參數(shù):

參數(shù)名 類型 必填 說明
uri String 圖片地址,可以是數(shù)據(jù)文件或應(yīng)用內(nèi)的資源。如果是應(yīng)用內(nèi)資源,必須使用絕對(duì)路徑
success Function 成功回調(diào)
fail Function 失敗回調(diào)
complete Function 執(zhí)行結(jié)束后的回調(diào)
success返回值:
參數(shù)名 類型 說明
uri String 圖片地址
attributes Object 圖片的exif信息
fail返回錯(cuò)誤代碼
錯(cuò)誤碼 說明
202 參數(shù)錯(cuò)誤
300 I/O錯(cuò)誤
301 文件路徑不存在

示例:

image.getExifAttributes({
  uri: 'internal://cache/123.png',
  success: function (data) {
    console.log(`handling success: ${JSON.stringify(data.attributes)}`)
  },
  fail: function (data, code) {
    console.log(`handling fail, code = ${code}`)
  }
})

image.setExifAttributes(OBJECT) 1040+

設(shè)置圖片的exif信息。設(shè)置操作會(huì)直接在所給圖片上進(jìn)行,不會(huì)生成新的圖片。支持的格式:JPEG。

參數(shù):

參數(shù)名 類型 必填 說明
uri String 圖片地址,可以是數(shù)據(jù)文件或應(yīng)用內(nèi)的資源。如果是應(yīng)用內(nèi)資源,必須使用絕對(duì)路徑
attributes Object 要設(shè)置的exif屬性列表 
success Function 成功回調(diào)
fail Function 失敗回調(diào)
complete Function 執(zhí)行結(jié)束后的回調(diào)
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  FlashpixVersionFocalLength
 FocalLengthIn35mmFilm  FocalPlaneResolutionUnit  FocalPlaneXResolution  FocalPlaneYResolution  GainControl  ISOSpeedRatings
 ImageUniqueID  LightSource  MakerNote  MaxApertureValue  MeteringMode  NewSubfileType
 OECFPixelXDimension  RelatedSoundFile  Saturation  SceneCaptureType  SceneType
 SensingMethod  Sharpness  ShutterSpeedValue  SpatialFrequencyResponseSpectralSensitivity  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返回值:
參數(shù)名 類型 說明
uri String 圖片地址
fail返回錯(cuò)誤代碼
錯(cuò)誤碼 說明
202 參數(shù)錯(cuò)誤
300 I/O錯(cuò)誤
301 文件路徑不存在

示例:

image.setExifAttributes({
  uri: 'internal://cache/123.jpg',
  attributes:{
     Orientation:'1',
     Make:'quick app'
  },
  success: function (data) {
    console.log(`handling success`)
  },
  fail: function (data, code) {
    console.log(`handling fail, code = ${code}`)
  }
})

后臺(tái)運(yùn)行限制

禁止使用。后臺(tái)運(yùn)行詳細(xì)用法參見 后臺(tái)運(yùn)行腳本。


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)