mirror of
				https://gitee.com/onvia/ccc-tnt-psd2ui
				synced 2025-10-31 03:16:57 +00:00 
			
		
		
		
	
		
			
	
	
		
			42 lines
		
	
	
		
			874 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			42 lines
		
	
	
		
			874 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
|   | 'use strict' | ||
|  | 
 | ||
|  | /*! | ||
|  |  * Canvas - JPEGStream | ||
|  |  * Copyright (c) 2010 LearnBoost <tj@learnboost.com> | ||
|  |  * MIT Licensed | ||
|  |  */ | ||
|  | 
 | ||
|  | const { Readable } = require('stream') | ||
|  | function noop () {} | ||
|  | 
 | ||
|  | class JPEGStream extends Readable { | ||
|  |   constructor (canvas, options) { | ||
|  |     super() | ||
|  | 
 | ||
|  |     if (canvas.streamJPEGSync === undefined) { | ||
|  |       throw new Error('node-canvas was built without JPEG support.') | ||
|  |     } | ||
|  | 
 | ||
|  |     this.options = options | ||
|  |     this.canvas = canvas | ||
|  |   } | ||
|  | 
 | ||
|  |   _read () { | ||
|  |     // For now we're not controlling the c++ code's data emission, so we only
 | ||
|  |     // call canvas.streamJPEGSync once and let it emit data at will.
 | ||
|  |     this._read = noop | ||
|  | 
 | ||
|  |     this.canvas.streamJPEGSync(this.options, (err, chunk) => { | ||
|  |       if (err) { | ||
|  |         this.emit('error', err) | ||
|  |       } else if (chunk) { | ||
|  |         this.push(chunk) | ||
|  |       } else { | ||
|  |         this.push(null) | ||
|  |       } | ||
|  |     }) | ||
|  |   } | ||
|  | }; | ||
|  | 
 | ||
|  | module.exports = JPEGStream |