feat: add safer nativeImage.createFromBitmap(), which does not decode PNG/JPEG (#17337)
This commit is contained in:
parent
aa8b66aae1
commit
878538f2e8
4 changed files with 91 additions and 1 deletions
|
@ -127,6 +127,30 @@ describe('nativeImage module', () => {
|
|||
})
|
||||
})
|
||||
|
||||
describe('createFromBitmap(buffer, options)', () => {
|
||||
it('returns an empty image when the buffer is empty', () => {
|
||||
expect(nativeImage.createFromBitmap(Buffer.from([]), { width: 0, height: 0 }).isEmpty())
|
||||
})
|
||||
|
||||
it('returns an image created from the given buffer', () => {
|
||||
const imageA = nativeImage.createFromPath(path.join(__dirname, 'fixtures', 'assets', 'logo.png'))
|
||||
|
||||
const imageB = nativeImage.createFromBitmap(imageA.toBitmap(), imageA.getSize())
|
||||
expect(imageB.getSize()).to.deep.equal({ width: 538, height: 190 })
|
||||
|
||||
const imageC = nativeImage.createFromBuffer(imageA.toBitmap(), { ...imageA.getSize(), scaleFactor: 2.0 })
|
||||
expect(imageC.getSize()).to.deep.equal({ width: 269, height: 95 })
|
||||
})
|
||||
|
||||
it('throws on invalid arguments', () => {
|
||||
expect(() => nativeImage.createFromBitmap(null, {})).to.throw('buffer must be a node Buffer')
|
||||
expect(() => nativeImage.createFromBitmap([12, 14, 124, 12], {})).to.throw('buffer must be a node Buffer')
|
||||
expect(() => nativeImage.createFromBitmap(Buffer.from([]), {})).to.throw('width is required')
|
||||
expect(() => nativeImage.createFromBitmap(Buffer.from([]), { width: 1 })).to.throw('height is required')
|
||||
expect(() => nativeImage.createFromBitmap(Buffer.from([]), { width: 1, height: 1 })).to.throw('invalid buffer size')
|
||||
})
|
||||
})
|
||||
|
||||
describe('createFromBuffer(buffer, options)', () => {
|
||||
it('returns an empty image when the buffer is empty', () => {
|
||||
expect(nativeImage.createFromBuffer(Buffer.from([])).isEmpty())
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue