image-convert
Advanced tools
Comparing version
57
index.js
@@ -6,30 +6,45 @@ // Copyright 2016 Arshpreet Wadehra | ||
const request = require('request').defaults({ encoding: null }); | ||
const FileAPI = require('file-api') | ||
, File = FileAPI.File | ||
, FileList = FileAPI.FileList | ||
, FileReader = FileAPI.FileReader | ||
; | ||
function GetFilename(url) { | ||
if (url) | ||
{ | ||
var m = url.toString().match(/.*\/(.+?)\./); | ||
if (m && m.length > 1) | ||
{ | ||
return m[1]; | ||
} | ||
} | ||
return ""; | ||
} | ||
function dataURLtoFile(dataurl, filename,output_format) { | ||
var file = new File({ | ||
name: filename+"."+output_format, // required | ||
type: "image/"+output_format, // optional | ||
buffer: new Buffer(dataurl,'base64') | ||
}); | ||
return file; | ||
} | ||
module.exports = { | ||
fromURL : ()=>{ | ||
let quality = 100,output_format="jpg",size=undefined; | ||
let max_allowed_parameters = 5; | ||
let min_allowed_parameters = 2; | ||
let function_parameter_index = arguments.length - 1; | ||
let callback = arguments[function_parameter_index]; | ||
if(arguments.length>max_allowed_parameters || arguments.length < min_allowed_parameters) | ||
callback(new Error("Parameters Mismatch"),null); | ||
else if(typeof arguments[0] == "function") | ||
callback(new Error("URL REQUIRED"),null); | ||
let img = arguments[0]; | ||
if(typeof quality[1] != "function") | ||
quality = arguments[1]; | ||
if(typeof quality[2] != "function") | ||
output_format = arguments[2]; | ||
if(typeof quality[3] != "function") | ||
size = arguments[3]; | ||
fromURL : (options, callback)=>{ | ||
let {url, quality,output_format,size} = options; | ||
if(url == undefined) | ||
callback("No URL FOUND",null); | ||
if(quality == undefined) | ||
quality = 100 | ||
if(output_format == undefined) | ||
output_format = "jpg" | ||
let filename = GetFilename(url); | ||
try{ | ||
request.get(img, function (err, res, body) { | ||
request.get(url, function (err, res, body) { | ||
var img = image(body); | ||
var buffer; | ||
if(size ==undefined)//original size | ||
if(size ==undefined || size == "original")//original size | ||
buffer = image(body).encode(output_format,{quality:quality}); | ||
else | ||
buffer = image(body).size(size).encode(output_format,{quality:quality}); | ||
callback(null,buffer); | ||
callback(null,buffer,dataURLtoFile(buffer,filename,output_format)); | ||
}); | ||
@@ -36,0 +51,0 @@ } |
{ | ||
"name": "image-convert", | ||
"version": "0.1.30", | ||
"description": "convert image and return static jpg and can resize from URL", | ||
"version": "0.1.32", | ||
"description": "convert image to different format like gif2jpg jpg2png also manage the quality & size", | ||
"main": "index.js", | ||
@@ -25,2 +25,3 @@ "scripts": { | ||
"dependencies": { | ||
"file-api": "^0.10.4", | ||
"images": "^3.0.0", | ||
@@ -27,0 +28,0 @@ "request": "^2.79.0" |
# image-convert | ||
Convert Gif to Static JPG | ||
convert image to different format like gif2jpg jpg2png also manage the quality & size | ||
npm install image-convert | ||
npm install image-convert --save | ||
@@ -12,3 +12,7 @@ | ||
let imgConvert = require('image-convert').fromURL; | ||
imgConvert(<url>,<quality[0..100]>,<output_format>,<size{integer}>,function(err,res){ | ||
imgConvert({ | ||
url:<url>, | ||
quality: <quality[0..100]>, | ||
output_format:<output_format>, | ||
size: <size{integer}>},function(err,buffer,file){//buffer=> base64 encode, file=> file object | ||
if(!err) | ||
@@ -20,4 +24,23 @@ console.log(res);//img buffer | ||
## Example | ||
``` js | ||
let imgConvert = require('image-convert').fromURL; | ||
imgConvert({ | ||
url:"https://upload.wikimedia.org/wikipedia/commons/thumb/2/2c/Rotating_earth_(large).gif/200px-Rotating_earth_(large).gif", | ||
quality: 80,//default 100 | ||
output_format:"jpg",//default jpg | ||
size: 300//defualt original | ||
},function(err,buffer,file){ | ||
if(!err) | ||
{ | ||
console.log(res);//img buffer | ||
console.log(file); | ||
} | ||
}) | ||
``` | ||
## License | ||
MIT |
4297
24.15%55
41.03%45
104.55%3
50%+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added