mirror of
https://github.com/wassname/DefinitelyTyped.git
synced 2026-09-09 11:13:57 +08:00
133 lines
3.7 KiB
TypeScript
133 lines
3.7 KiB
TypeScript
/// <reference path="imagemagick-native.d.ts" />
|
|
/// <reference path="../node/node.d.ts" />
|
|
|
|
import imagemagick = require('imagemagick-native');
|
|
import fs = require('fs');
|
|
|
|
|
|
// Examples
|
|
|
|
// * Convert formats
|
|
// Convert from one format to another with quality control:
|
|
fs.writeFileSync('after.png', imagemagick.convert({
|
|
srcData: fs.readFileSync('before.jpg'),
|
|
format: 'PNG',
|
|
quality: 100 // (best) to 1 (worst)
|
|
}));
|
|
|
|
// * Blur
|
|
// Blur image:
|
|
fs.writeFileSync('after.jpg', imagemagick.convert({
|
|
srcData: fs.readFileSync('before.jpg'),
|
|
blur: 5
|
|
}));
|
|
|
|
// * Resize
|
|
// Resized images by specifying width and height. There are three resizing styles:
|
|
// - aspectfill: Default. The resulting image will be exactly the specified size, and may be cropped.
|
|
// - aspectfit: Scales the image so that it will not have to be cropped.
|
|
// - fill: Squishes or stretches the image so that it fills exactly the specified size.
|
|
fs.writeFileSync('after_resize.jpg', imagemagick.convert({
|
|
srcData: fs.readFileSync('before_resize.jpg'),
|
|
width: 100,
|
|
height: 100,
|
|
resizeStyle: 'aspectfill', // is the default, or 'aspectfit' or 'fill'
|
|
gravity: 'Center' // optional: position crop area when using 'aspectfill'
|
|
}));
|
|
|
|
// * Rotate, flip, and mirror
|
|
// Rotate and flip images, and combine the two to mirror:
|
|
fs.writeFileSync('after_rotateflip.jpg', imagemagick.convert({
|
|
srcData: fs.readFileSync('before_rotateflip.jpg'),
|
|
rotate: 180,
|
|
flip: true
|
|
}));
|
|
|
|
|
|
// API Reference
|
|
|
|
// * convert(options, [callback])
|
|
// Convert a buffer provided as options.srcData and return a Buffer.
|
|
var options = {
|
|
srcData: fs.readFileSync('source.jpg'),
|
|
srcFormat: 'jpeg',
|
|
quality: 90,
|
|
trim: true,
|
|
trimFuzz: 0.25,
|
|
width: 100,
|
|
height: 100,
|
|
density: 96,
|
|
resizeStyle: 'aspectfill',
|
|
gravity: 'NorthWest',
|
|
format: 'png',
|
|
filter: 'Lnaczos',
|
|
blur: 3,
|
|
strip: true,
|
|
rotate: 30,
|
|
flip: true,
|
|
debug: true,
|
|
ignoreWarnings: false
|
|
};
|
|
|
|
imagemagick.convert(options, (err: any, buffer: Buffer) => {
|
|
// check err, use buffer
|
|
});
|
|
fs.createReadStream('input.png')
|
|
.pipe(imagemagick.streams.convert({
|
|
quality: 75,
|
|
width: 160,
|
|
height: 160
|
|
}))
|
|
.pipe(fs.createWriteStream('output.png'));
|
|
|
|
|
|
// * identify(options, [callback])
|
|
// Identify a buffer provided as srcData and return an object.
|
|
imagemagick.identify({
|
|
srcData: fs.readFileSync('target.jpg'),
|
|
debug: true,
|
|
ignoreWarnings: false
|
|
}, (err: any, result: imagemagick.IIdentifyResult) => {
|
|
// check err, use result
|
|
});
|
|
|
|
// * quantizeColors(options)
|
|
// Quantize the image to a specified amount of colors from a buffer provided as srcData and return an array.
|
|
var colors = imagemagick.quantizeColors({
|
|
srcData: fs.readFileSync('target.jpg'),
|
|
colors: 3,
|
|
debug: true,
|
|
ignoreWarnings: false
|
|
});
|
|
|
|
// * composite(options, [callback])
|
|
// Composite a buffer provided as options.compositeData on a buffer provided as options.srcData with gravity specified by options.gravity and return a Buffer
|
|
imagemagick.composite({
|
|
srcData: fs.readFileSync('target.jpg'),
|
|
compositeData: fs.readFileSync('composite.jpg'),
|
|
gravity: 'NorthWestGravity',
|
|
debug: true,
|
|
ignoreWarnings: false
|
|
}, (err: any, buffer: Buffer) => {
|
|
// check err, use buffer
|
|
});
|
|
|
|
// * getConstPixels(options)
|
|
// Get pixels of provided rectangular region.
|
|
var pixels = imagemagick.getConstPixels({
|
|
srcData: fs.readFileSync('target.jpg'),
|
|
x: 0,
|
|
y: 0,
|
|
columns: 1,
|
|
rows: 1
|
|
});
|
|
|
|
// * quantumDepth
|
|
// Return ImageMagick's QuantumDepth, which is defined in compile time.
|
|
var depth: number = imagemagick.quantumDepth();
|
|
|
|
// * version
|
|
// Return ImageMagick's version as string.
|
|
var version: string = imagemagick.version();
|
|
|