接口聲明
{"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)資源,必須使用絕對路徑 |
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返回錯誤代碼
錯誤碼 |
說明 |
202 |
參數(shù)錯誤 |
300 |
I/O錯誤 |
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)資源,必須使用絕對路徑 |
quality |
Integer |
否 |
圖片的壓縮質(zhì)量,0-100之間,默認(rèn)是75 |
ratio |
Number |
否 |
尺寸壓縮倍數(shù),必須大于0,尺寸會變?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返回錯誤代碼
錯誤碼 |
說明 |
202 |
參數(shù)錯誤 |
300 |
I/O錯誤 |
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+
對圖片按順序執(zhí)行編輯操作。
在順序執(zhí)行編輯操作列表中的操作時,上一步操作生成的結(jié)果會作為下一步操作的輸入,坐標(biāo)系也是以上一步操作生成的結(jié)果的左上角為坐標(biāo)原點重新確定的。
參數(shù):
參數(shù)名 |
類型 |
必填 |
說明 |
uri |
String |
是 |
圖片地址,可以是數(shù)據(jù)文件或應(yīng)用內(nèi)的資源。如果是應(yīng)用內(nèi)資源,必須使用絕對路徑 |
operations |
ObjectArray |
否 |
編輯操作列表,按照先后順序執(zhí)行。如果未提供,則不會執(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 |
否 |
裁剪的起始點的x坐標(biāo),默認(rèn)是0 |
y |
Number |
否 |
裁剪的起始點的y坐標(biāo),默認(rèn)是0 |
width |
Number |
是 |
裁剪的圖片寬度 |
height |
Number |
是 |
裁剪的圖片高度 |
2) 圖片縮放
參數(shù)名 |
類型 |
必填 |
說明 |
action |
String |
是 |
必須是scale |
scaleX |
Number |
否 |
寬度的縮放比率,縮放后寬度會變成原圖的scaleX倍。默認(rèn)是1 |
scaleY |
Number |
否 |
高度的縮放比率,縮放后高度會變成原圖的scaleY倍。默認(rèn)是1 |
3) 圖片旋轉(zhuǎn)
參數(shù)名 |
類型 |
必填 |
說明 |
action |
String |
是 |
必須是rotate |
degree |
Number |
是 |
旋轉(zhuǎn)的角度 |
success返回值:
參數(shù)名 |
類型 |
說明 |
uri |
String |
生成的圖片的地址 |
fail返回錯誤代碼
錯誤碼 |
說明 |
202 |
參數(shù)錯誤 |
300 |
I/O錯誤 |
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)資源,必須使用絕對路徑 |
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返回錯誤代碼:
錯誤碼 |
說明 |
202 |
參數(shù)錯誤 |
300 |
I/O錯誤 |
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)資源,必須使用絕對路徑 |
success |
Function |
否 |
成功回調(diào) |
fail |
Function |
否 |
失敗回調(diào) |
complete |
Function |
否 |
執(zhí)行結(jié)束后的回調(diào) |
success返回值:
參數(shù)名 |
類型 |
說明 |
uri |
String |
圖片地址 |
attributes |
Object |
圖片的exif信息 |
fail返回錯誤代碼
錯誤碼 |
說明 |
202 |
參數(shù)錯誤 |
300 |
I/O錯誤 |
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è)置操作會直接在所給圖片上進(jìn)行,不會生成新的圖片。支持的格式:JPEG。
參數(shù):
參數(shù)名 |
類型 |
必填 |
說明 |
uri |
String |
是 |
圖片地址,可以是數(shù)據(jù)文件或應(yīng)用內(nèi)的資源。如果是應(yīng)用內(nèi)資源,必須使用絕對路徑 |
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 |
FlashpixVersion | FocalLength |
FocalLengthIn35mmFilm |
FocalPlaneResolutionUnit |
FocalPlaneXResolution |
FocalPlaneYResolution |
GainControl |
ISOSpeedRatings |
ImageUniqueID |
LightSource |
MakerNote |
MaxApertureValue |
MeteringMode |
NewSubfileType |
OECF | PixelXDimension |
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返回值:
參數(shù)名 |
類型 |
說明 |
uri |
String |
圖片地址 |
fail返回錯誤代碼
錯誤碼 |
說明 |
202 |
參數(shù)錯誤 |
300 |
I/O錯誤 |
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}`)
}
})
后臺運(yùn)行限制
禁止使用。后臺運(yùn)行詳細(xì)用法參見 后臺運(yùn)行腳本。
更多建議: