├── Readme.md ├── batcat.png ├── example.js ├── index.js ├── macbook.png └── package.json /Readme.md: -------------------------------------------------------------------------------- 1 | 2 | # png-has-alpha 3 | 4 | Check if a PNG contains any alpha channels. 5 | 6 | ## License 7 | 8 | MIT 9 | 10 | -------------------------------------------------------------------------------- /batcat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tj/node-png-has-alpha/bbc50ae065b0498eac970a986a5d8437a8bbdb14/batcat.png -------------------------------------------------------------------------------- /example.js: -------------------------------------------------------------------------------- 1 | 2 | var hasAlpha = require('./'); 3 | 4 | hasAlpha('batcat.png', function(err, yes){ 5 | if (err) throw err; 6 | console.log('batcat: %s', yes ? 'yes' : 'no'); 7 | }); 8 | 9 | hasAlpha('macbook.png', function(err, yes){ 10 | if (err) throw err; 11 | console.log('macbook: %s', yes ? 'yes' : 'no'); 12 | }); 13 | 14 | var fs = require('fs'); 15 | 16 | var buf = fs.readFileSync('macbook.png'); 17 | console.log('macbook: %s', hasAlpha(buf) ? 'yes' : 'no'); 18 | 19 | var buf = fs.readFileSync('batcat.png'); 20 | console.log('batcat: %s', hasAlpha(buf) ? 'yes' : 'no'); 21 | -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Module dependencies. 4 | */ 5 | 6 | var fs = require('fs'); 7 | 8 | /** 9 | * Expose `hasAlpha`. 10 | */ 11 | 12 | module.exports = hasAlpha; 13 | 14 | /** 15 | * Check if `png` has transparency. 16 | * 17 | * @param {String|Buffer} png buffer or filename 18 | * @param {Function} [fn] 19 | * @api public 20 | */ 21 | 22 | function hasAlpha(png, fn) { 23 | if ('string' == typeof png) return fromFile(png, fn); 24 | return 6 == png[25]; 25 | } 26 | 27 | /** 28 | * From file. 29 | */ 30 | 31 | function fromFile(file, fn) { 32 | var buf = new Buffer(1); 33 | fs.open(file, 'r', function(err, fd){ 34 | if (err) return fn(err); 35 | fs.read(fd, buf, 0, 1, 25, function(err, read, buf){ 36 | if (err) return fn(err); 37 | fs.close(fd, function(err){ 38 | fn(err, 6 == buf[0]); 39 | }); 40 | }); 41 | }); 42 | } 43 | -------------------------------------------------------------------------------- /macbook.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tj/node-png-has-alpha/bbc50ae065b0498eac970a986a5d8437a8bbdb14/macbook.png -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "png-has-alpha", 3 | "version": "1.0.0", 4 | "description": "check if a png has alpha channels", 5 | "license": "MIT" 6 | } 7 | --------------------------------------------------------------------------------