mirror of
https://gitee.com/onvia/ccc-tnt-psd2ui
synced 2025-12-14 00:38:49 +00:00
支持 mac
This commit is contained in:
42
npm-packages/mac-v2.4.x/canvas/lib/pngstream.js
Normal file
42
npm-packages/mac-v2.4.x/canvas/lib/pngstream.js
Normal file
@@ -0,0 +1,42 @@
|
||||
'use strict'
|
||||
|
||||
/*!
|
||||
* Canvas - PNGStream
|
||||
* Copyright (c) 2010 LearnBoost <tj@learnboost.com>
|
||||
* MIT Licensed
|
||||
*/
|
||||
|
||||
const { Readable } = require('stream')
|
||||
function noop () {}
|
||||
|
||||
class PNGStream extends Readable {
|
||||
constructor (canvas, options) {
|
||||
super()
|
||||
|
||||
if (options &&
|
||||
options.palette instanceof Uint8ClampedArray &&
|
||||
options.palette.length % 4 !== 0) {
|
||||
throw new Error('Palette length must be a multiple of 4.')
|
||||
}
|
||||
this.canvas = canvas
|
||||
this.options = options || {}
|
||||
}
|
||||
|
||||
_read () {
|
||||
// For now we're not controlling the c++ code's data emission, so we only
|
||||
// call canvas.streamPNGSync once and let it emit data at will.
|
||||
this._read = noop
|
||||
|
||||
this.canvas.streamPNGSync((err, chunk, len) => {
|
||||
if (err) {
|
||||
this.emit('error', err)
|
||||
} else if (len) {
|
||||
this.push(chunk)
|
||||
} else {
|
||||
this.push(null)
|
||||
}
|
||||
}, this.options)
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = PNGStream
|
||||
Reference in New Issue
Block a user