From 337a91729625ee481c5c1d526f54788bcc5ba6d4 Mon Sep 17 00:00:00 2001 From: Yuki KAN Date: Tue, 3 Mar 2015 07:03:28 +0900 Subject: [PATCH] add png-async definition --- png-async/png-async-tests.ts | 32 ++++++++++++++++++++ png-async/png-async.d.ts | 58 ++++++++++++++++++++++++++++++++++++ 2 files changed, 90 insertions(+) create mode 100644 png-async/png-async-tests.ts create mode 100644 png-async/png-async.d.ts diff --git a/png-async/png-async-tests.ts b/png-async/png-async-tests.ts new file mode 100644 index 000000000..6523089a2 --- /dev/null +++ b/png-async/png-async-tests.ts @@ -0,0 +1,32 @@ +/// + +import fs = require('fs'); +import png = require('png-async'); + +var devnull = process.platform === 'win32' ? 'nul' : '/dev/null'; + +// stream test +var img = new png.Image({ + width: 1, + height: 1, + fill: true +}) + .pack() + .pipe(png.createImage({ + deflateStrategy: png.EDeflateStrategy.FIXED, + filterType: png.EFilterType.Auto + }) + .on('parsed', function () { + + if (this.data[0] !== 0) { + throw new Error('invalid data'); + } + + this.data[0] = 255; + this.data[3] = 255; + + this.pack().pipe(fs.createWriteStream(devnull)).on('finish', () => { + console.log('done'); + }); + }) + ); diff --git a/png-async/png-async.d.ts b/png-async/png-async.d.ts new file mode 100644 index 000000000..2898c4665 --- /dev/null +++ b/png-async/png-async.d.ts @@ -0,0 +1,58 @@ +// Type definitions for png-async +// Project: https://github.com/kanreisa/node-png-async +// Definitions by: Yuki KAN +// Definitions: https://github.com/borisyankov/DefinitelyTyped + +/// + +declare module 'png-async' { + import stream = require('stream'); + + export interface IImageOptions { + width?: number; + height?: number; + fill?: boolean; + checkCRC?: boolean; + deflateChunkSize?: number; + deflateLevel?: number; + deflateStrategy?: EDeflateStrategy; + filterType?: EFilterType; + } + + export enum EDeflateStrategy { + DEFAULT_STRATEGY = 0, + FILTERED = 1, + HUFFMAN_ONLY = 2, + RLE = 3, + FIXED = 4, + } + + export enum EFilterType { + Auto = -1, + None = 0, + Sub = 1, + Up = 2, + Average = 3, + Paeth = 4, + } + + export function createImage(option?: IImageOptions): Image; + + export class Image extends stream.Duplex { + width: number; + height: number; + gamma: number; + data: Buffer; + constructor(option?: IImageOptions); + pack(): Image; + parse(data: Buffer, callback?: (err: Error, image: Image) => void): Image; + write(data: any, cb?: any): boolean; + end(data?: any): void; + bitblt(dst: Image, sx: number, sy: number, w: number, h: number, dx: number, dy: number): Image; + + on(event: string, listener: Function): Image; + once(event: string, listener: Function): Image; + removeListener(event: string, listener: Function): Image; + removeAllListeners(event: string): Image; + } +}