You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
			
				
					89 lines
				
				2.3 KiB
			
		
		
			
		
	
	
					89 lines
				
				2.3 KiB
			| 
								 
											4 years ago
										 
									 | 
							
								# image-size
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								[](https://www.npmjs.com/package/image-size)
							 | 
						||
| 
								 | 
							
								[](https://travis-ci.org/image-size/image-size)
							 | 
						||
| 
								 | 
							
								[](http://npm-stat.com/charts.html?package=image-size&author=&from=&to=)
							 | 
						||
| 
								 | 
							
								[](https://coveralls.io/github/image-size/image-size?branch=master)
							 | 
						||
| 
								 | 
							
								[](https://david-dm.org/image-size/image-size#info=devDependencies)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								A [Node](https://nodejs.org/en/) module to get dimensions of any image file
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								## Supported formats
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								* BMP
							 | 
						||
| 
								 | 
							
								* GIF
							 | 
						||
| 
								 | 
							
								* JPEG
							 | 
						||
| 
								 | 
							
								* PNG
							 | 
						||
| 
								 | 
							
								* PSD
							 | 
						||
| 
								 | 
							
								* TIFF
							 | 
						||
| 
								 | 
							
								* WebP
							 | 
						||
| 
								 | 
							
								* SVG
							 | 
						||
| 
								 | 
							
								* DDS
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								### Upcoming
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								* SWF
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								## Programmatic Usage
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								npm install image-size --save
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								### Synchronous
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```javascript
							 | 
						||
| 
								 | 
							
								var sizeOf = require('image-size');
							 | 
						||
| 
								 | 
							
								var dimensions = sizeOf('images/funny-cats.png');
							 | 
						||
| 
								 | 
							
								console.log(dimensions.width, dimensions.height);
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								### Asynchronous
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```javascript
							 | 
						||
| 
								 | 
							
								var sizeOf = require('image-size');
							 | 
						||
| 
								 | 
							
								sizeOf('images/funny-cats.png', function (err, dimensions) {
							 | 
						||
| 
								 | 
							
								  console.log(dimensions.width, dimensions.height);
							 | 
						||
| 
								 | 
							
								});
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								NOTE: The asynchronous version doesn't work if the input is a Buffer. Use synchronous version instead.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								### Using a URL
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```javascript
							 | 
						||
| 
								 | 
							
								var url = require('url');
							 | 
						||
| 
								 | 
							
								var http = require('http');
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								var sizeOf = require('image-size');
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								var imgUrl = 'http://my-amazing-website.com/image.jpeg';
							 | 
						||
| 
								 | 
							
								var options = url.parse(imgUrl);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								http.get(options, function (response) {
							 | 
						||
| 
								 | 
							
								  var chunks = [];
							 | 
						||
| 
								 | 
							
								  response.on('data', function (chunk) {
							 | 
						||
| 
								 | 
							
								    chunks.push(chunk);
							 | 
						||
| 
								 | 
							
								  }).on('end', function() {
							 | 
						||
| 
								 | 
							
								    var buffer = Buffer.concat(chunks);
							 | 
						||
| 
								 | 
							
								    console.log(sizeOf(buffer));
							 | 
						||
| 
								 | 
							
								  });
							 | 
						||
| 
								 | 
							
								});
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								You can optionally check the buffer lengths & stop downloading the image after a few kilobytes.
							 | 
						||
| 
								 | 
							
								**You don't need to download the entire image**
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								## Command-Line Usage (CLI)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								npm install image-size --global
							 | 
						||
| 
								 | 
							
								image-size image1 [image2] [image3] ...
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								## Credits
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								not a direct port, but an attempt to have something like
							 | 
						||
| 
								 | 
							
								[dabble's imagesize](https://github.com/dabble/imagesize/blob/master/lib/image_size.rb) as a node module.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								## [Contributors](Contributors.md)
							 |