智能照明系统APP-本地串口
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
LightingSystemApp-serial/.svn/pristine/f8/f867fdd9bd93969136b120cadf3...

133 lines
2.1 KiB

3 years ago
function getInt (method) {
return function (value, params) {
if (value) {
params[method] = Math.round(value)
}
}
}
export const canvasGetImageData = {
canvasId: {
type: String,
required: true
},
x: {
type: Number,
required: true,
validator: getInt('x')
},
y: {
type: Number,
required: true,
validator: getInt('y')
},
width: {
type: Number,
required: true,
validator: getInt('width')
},
height: {
type: Number,
required: true,
validator: getInt('height')
}
}
export const canvasPutImageData = {
canvasId: {
type: String,
required: true
},
data: {
type: Uint8ClampedArray,
required: true
},
x: {
type: Number,
required: true,
validator: getInt('x')
},
y: {
type: Number,
required: true,
validator: getInt('y')
},
width: {
type: Number,
required: true,
validator: getInt('width')
},
height: {
type: Number,
validator: getInt('height')
}
}
const fileTypes = {
PNG: 'png',
JPG: 'jpg',
JPEG: 'jpg'
}
export const canvasToTempFilePath = {
x: {
type: Number,
default: 0,
validator: getInt('x')
},
y: {
type: Number,
default: 0,
validator: getInt('y')
},
width: {
type: Number,
validator: getInt('width')
},
height: {
type: Number,
validator: getInt('height')
},
destWidth: {
type: Number,
validator: getInt('destWidth')
},
destHeight: {
type: Number,
validator: getInt('destHeight')
},
canvasId: {
type: String,
require: true
},
fileType: {
type: String,
validator (value, params) {
value = (value || '').toUpperCase()
params.fileType = value in fileTypes ? fileTypes[value] : fileTypes.PNG
}
},
quality: {
type: Number,
validator (value, params) {
value = Math.floor(value)
params.quality = value > 0 && value < 1 ? value : 1
}
}
}
export const drawCanvas = {
canvasId: {
type: String,
require: true
},
actions: {
type: Array,
require: true
},
reserve: {
type: Boolean,
default: false
}
}