-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsystem.image.d.ts
353 lines (328 loc) · 9.71 KB
/
system.image.d.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
/// <reference path="./types.d.ts"/>
/**
* 图片编辑 image
* @后台运行限制 禁止使用。后台运行详细用法参见后台运行 脚本。
* @see https://doc.quickapp.cn/features/system/image.html
*/
declare module '@system.image' {
interface Image {
/**
* 获取图片信息
* @example
* ```js
* 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}`)
* }
* })
* ```
*/
getImageInfo(OBJECT: GetImageInfoOBJECT): any;
/**
* 压缩图片
* @example
* ```js
* image.compressImage({
* uri: 'internal://tmp/abc.jpg',
* quality: 80,
* radio: 2, // 变为原图的1/2大小
* format: 'JPEG',
* success: function(data) {
* console.log(data.uri)
* },
* fail: function(data, code) {
* console.log(`handling fail, code = ${code}`)
* }
* })
* ```
*/
compressImage(OBJECT: CompressImageOBJECT): any;
/**
* 对图片按顺序执行编辑操作。
* @since 1000
* @example
* ```js
* 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}`)
* }
* })
* ```
*/
applyOperations(OBJECT: ApplyOperationsOBJECT): any;
/**
* 打开编辑器来编辑图片。目前支持选择图片范围并裁剪。
* @example
* ```js
* 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}`)
* }
* })
* ```
*/
editImage(OBJECT: EditImageOBJECT): any;
/**
* 获取图片的exif信息。支持的格式:JPEG,DNG,CR2,NEF,NRW,ARW,RW2,ORF,PEF,SRW,RAF,HEIF。
* @since 1040
* @example
* ```js
* 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}`)
* }
* })
* ```
*/
getExifAttributes(OBJECT: GetExifAttributesOBJECT): any;
/**
* 设置图片的exif信息。设置操作会直接在所给图片上进行,不会生成新的图片。支持的格式:JPEG。
* @since 1040
* @example
* ```js
* 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}`)
* }
* })
* ```
*/
setExifAttributes(OBJECT: SetExifAttributesOBJECT): any;
}
/**
*
* @param uri 图片地址,可以是数据文件或应用内的资源。如果是应用内资源,必须使用绝对路径
* @param attributes 要设置的exif属性列表
* @param success 成功回调[可选]
* @param fail 失败回调[可选]
* @param complete 执行结束后的回调[可选]
*/
interface SetExifAttributesOBJECT {
uri: String;
attributes: Object;
success?: SetExifAttributesOBJECTSuccessCB;
fail?: Function;
complete?: Function;
}
/**
* 成功回调
*/
type SetExifAttributesOBJECTSuccessCB = (
successArg: SetExifAttributesSuccessSuccessArg
) => any;
/**
* 成功回调
* @param uri 图片地址[可选]
*/
interface SetExifAttributesSuccessSuccessArg {
uri?: String;
}
/**
*
* @param uri 图片地址,可以是数据文件或应用内的资源。如果是应用内资源,必须使用绝对路径
* @param success 成功回调[可选]
* @param fail 失败回调[可选]
* @param complete 执行结束后的回调[可选]
*/
interface GetExifAttributesOBJECT {
uri: String;
success?: GetExifAttributesOBJECTSuccessCB;
fail?: Function;
complete?: Function;
}
/**
* 成功回调
*/
type GetExifAttributesOBJECTSuccessCB = (
successArg: GetExifAttributesSuccessSuccessArg
) => any;
/**
* 成功回调
* @param uri 图片地址[可选]
* @param attributes 图片的exif信息[可选]
*/
interface GetExifAttributesSuccessSuccessArg {
uri?: String;
attributes?: Object;
}
/**
*
* @param uri 图片地址,可以是数据文件或应用内的资源。如果是应用内资源,必须使用绝对路径
* @param aspectRatioX 用于限定裁剪结果的宽高比,该参数指定宽高比中宽度比率。例如:aspectRatioX为16,aspectRatioY为9,则限定裁剪结果必须是16:9的图[可选] 1050+
* @param aspectRatioY 用于限定裁剪结果的宽高比,该参数指定宽高比中宽度比率。例如:aspectRatioX为16,aspectRatioY为9,则限定裁剪结果必须是16:9的图[可选] 1050+
* @param success 成功回调[可选]
* @param fail 失败回调[可选]
* @param cancel 取消回调 [可选]
* @param complete 执行结束后的回调[可选]
*/
interface EditImageOBJECT {
uri: String;
aspectRatioX?: Integer;
aspectRatioY?: Integer;
success?: EditImageOBJECTSuccessCB;
fail?: Function;
cancel?: Function;
complete?: Function;
}
/**
* 成功回调
*/
type EditImageOBJECTSuccessCB = (
successArg: EditImageSuccessSuccessArg
) => any;
/**
* 成功回调
* @param uri 生成的图片的地址[可选]
*/
interface EditImageSuccessSuccessArg {
uri?: String;
}
/**
*
* @param uri 图片地址,可以是数据文件或应用内的资源。如果是应用内资源,必须使用绝对路径
* @param operations 编辑操作列表,按照先后顺序执行。如果未提供,则不会执行编辑操作,仅重新保存图片[可选]
* @param quality 图片的压缩质量,0-100 之间,默认是 75[可选]
* @param format 图片保存格式,支持 JPEG,PNG,WEBP 三种格式。默认使用 JPEG 格式[可选]
* @param success 成功回调[可选]
* @param fail 失败回调[可选]
* @param complete 执行结束后的回调[可选]
*/
interface ApplyOperationsOBJECT {
uri: String;
operations?: Objectarray;
quality?: Integer;
format?: String;
success?: ApplyOperationsOBJECTSuccessCB;
fail?: Function;
complete?: Function;
}
/**
* 成功回调
*/
type ApplyOperationsOBJECTSuccessCB = (
successArg: ApplyOperationsSuccessSuccessArg
) => any;
/**
* 成功回调
* @param uri 生成的图片的地址[可选]
*/
interface ApplyOperationsSuccessSuccessArg {
uri?: String;
}
/**
*
* @param uri 图片地址,可以是数据文件或应用内的资源。如果是应用内资源,必须使用绝对路径
* @param quality 图片的压缩质量,0-100 之间,默认是 75[可选]
* @param ratio 尺寸压缩倍数,必须大于 0,尺寸会变为原图的 1/ratio 大小[可选]
* @param format 图片保存格式,支持 JPEG,PNG,WEBP 三种格式。默认使用 JPEG 格式[可选]
* @param success 成功回调[可选]
* @param fail 失败回调[可选]
* @param complete 执行结束后的回调[可选]
*/
interface CompressImageOBJECT {
uri: String;
quality?: Integer;
ratio?: Number;
format?: String;
success?: CompressImageOBJECTSuccessCB;
fail?: Function;
complete?: Function;
}
/**
* 成功回调
*/
type CompressImageOBJECTSuccessCB = (
successArg: CompressImageSuccessSuccessArg
) => any;
/**
* 成功回调
* @param uri 压缩后的图片地址[可选]
*/
interface CompressImageSuccessSuccessArg {
uri?: String;
}
/**
*
* @param uri 图片地址,可以是数据文件或应用内的资源。如果是应用内资源,必须使用绝对路径
* @param success 成功回调[可选]
* @param fail 失败回调[可选]
* @param complete 执行结束后的回调[可选]
*/
interface GetImageInfoOBJECT {
uri: String;
success?: GetImageInfoOBJECTSuccessCB;
fail?: Function;
complete?: Function;
}
/**
* 成功回调
*/
type GetImageInfoOBJECTSuccessCB = (
successArg: GetImageInfoSuccessSuccessArg
) => any;
/**
* 成功回调
* @param uri 图片地址[可选]
* @param width 图片的宽度,单位为 px[可选]
* @param height 图片的高度,单位为 px[可选]
* @param size 图片的大小,单位为 Byte[可选]
*/
interface GetImageInfoSuccessSuccessArg {
uri?: String;
width?: Integer;
height?: Integer;
size?: Long;
}
/**
* 图片编辑 image
* @后台运行限制 禁止使用。后台运行详细用法参见后台运行 脚本。
* @see https://doc.quickapp.cn/features/system/image.html
*/
const image: Image;
export default image;
}