
Security News
/Research
Wallet-Draining npm Package Impersonates Nodemailer to Hijack Crypto Transactions
Malicious npm package impersonates Nodemailer and drains wallets by hijacking crypto transactions across multiple blockchains.
graphicsmagick-stream
Advanced tools
Fast convertion/scaling of images using a pool of long lived graphicsmagick processes
Fast convertion/scaling of images using a pool of long lived graphicsmagick processes
npm install graphicsmagick-stream
It works by spawning and reusing a custom graphicsmagick processes (see src/) that accepts images over stdin and pipes out the converted result over stdout
var gm = require('graphicsmagick-stream')
var fs = require('fs')
var convert = gm({
pool: 5, // how many graphicsmagick processes to use
format: 'png', // format to convert to
scale: {
width: 200, // scale input to this width
height: 200, // scale input this height
type: 'contain' // scale type (either contain/cover/fixed)
},
crop: {
width: 200, // crop input to this width
height: 200, // crop input this height
x: 0, // crop using this x offset
y: 0 // crop using this y offset
},
page: [1,5], // only render page 1 to 5 (for pdfs)
// set to a single number if you only want to render one page
// or omit if you want all pages
rotate: 'auto', // auto rotate image based on exif data
// or use rotate:degrees
density: 300, // set the image density. useful when converting pdf to images
split: false, // when converting pdfs into images it is possible to split
// into multiple pages. If set to true the resulting file will
// be a tar containing all the images.
tar: false // stream a tar containing the image. This is forced to `true`
// if split is set to `true`
})
fs.createReadStream('input.jpg')
.pipe(convert({
// override any of the above options here
}))
.pipe(fs.createWriteStream('output.jpg'))
You do not need to set all the options. If you only want to scale an image do
var stream = convert({
scale: {
width: 400,
height: 300
}
})
You can also use it to get metadata info about an image using convert.info
var info = convert.info(function(err, info) {
console.log(info) // prints something like {width:500, height:400, format:'png'}
})
fs.createReadStream('input.jpg').pipe(info)
For more examples and usage see the test folder
contain
sets the scaled image to maximum have a width/height of the scale box. Always respects ratio.cover
sets the scaled image to at least have one of the width/height within the scale box. Always respects ratio.fixed
sets the scaled image to precisely the given width/height of the scale box. If both width/height is given it does not respect the ratio.If you install ghostscript as well you will be able to convert pdfs to images by simply piping in a pdf and setting output format to jpeg
(or another image format).
If you are rendering a multipage pdf scale.height
will set the height of each page. To force scale.height
to donate the height of the entire image set scale.multipage = true
.
Use split = true
to output each page as an image file. This will result in a tar file containing all the images, so you will need to untar them on the other end. Use a project like tar-stream to achieve this.
You need to install libgraphicsmagicks in order to compile this.
brew install graphicsmagick --build-from-source
brew install libarchive
You will have to build the binary using the following command
gcc src/*.c -o bin/convert -L/usr/local/opt/libarchive/lib -I/usr/local/opt/libarchive/include -larchive -O `GraphicsMagickWand-config --cflags --cppflags --ldflags --libs`
sudo apt-get install build-essential libgraphicsmagick++1-dev libarchive-dev
Then npm install
should work.
MIT
FAQs
Fast convertion/scaling of images using a pool of long lived graphicsmagick processes
The npm package graphicsmagick-stream receives a total of 31 weekly downloads. As such, graphicsmagick-stream popularity was classified as not popular.
We found that graphicsmagick-stream demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 4 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
/Research
Malicious npm package impersonates Nodemailer and drains wallets by hijacking crypto transactions across multiple blockchains.
Security News
This episode explores the hard problem of reachability analysis, from static analysis limits to handling dynamic languages and massive dependency trees.
Security News
/Research
Malicious Nx npm versions stole secrets and wallet info using AI CLI tools; Socket’s AI scanner detected the supply chain attack and flagged the malware.