60 lines
1.4 KiB
Markdown
60 lines
1.4 KiB
Markdown
|
<div align="center">
|
||
|
<img width="200" height="200"
|
||
|
src="https://s3.amazonaws.com/pix.iemoji.com/images/emoji/apple/ios-11/256/crayon.png">
|
||
|
<h1>@jimp/plugin-contain</h1>
|
||
|
<p>Contain an image within a height and width.</p>
|
||
|
</div>
|
||
|
|
||
|
Scale the image to the given width and height keeping the aspect ratio. Some parts of the image may be letter boxed.
|
||
|
|
||
|
## Usage
|
||
|
|
||
|
- @param {number} w the width to resize the image to
|
||
|
- @param {number} h the height to resize the image to
|
||
|
- @param {number} alignBits (optional) A bitmask for horizontal and vertical alignment
|
||
|
- @param {string} mode (optional) a scaling method (e.g. Jimp.RESIZE_BEZIER)
|
||
|
- @param {function(Error, Jimp)} cb (optional) a callback for when complete
|
||
|
|
||
|
```js
|
||
|
import jimp from 'jimp';
|
||
|
|
||
|
async function main() {
|
||
|
const image = await jimp.read('test/image.png');
|
||
|
|
||
|
image.contain(150, 100);
|
||
|
}
|
||
|
|
||
|
main();
|
||
|
```
|
||
|
|
||
|
### Align modes
|
||
|
|
||
|
The following constants can be passed to `image.contain`:
|
||
|
|
||
|
```js
|
||
|
Jimp.HORIZONTAL_ALIGN_LEFT;
|
||
|
Jimp.HORIZONTAL_ALIGN_CENTER;
|
||
|
Jimp.HORIZONTAL_ALIGN_RIGHT;
|
||
|
|
||
|
Jimp.VERTICAL_ALIGN_TOP;
|
||
|
Jimp.VERTICAL_ALIGN_MIDDLE;
|
||
|
Jimp.VERTICAL_ALIGN_BOTTOM;
|
||
|
```
|
||
|
|
||
|
For example:
|
||
|
|
||
|
```js
|
||
|
image.contain(250, 250, Jimp.HORIZONTAL_ALIGN_LEFT | Jimp.VERTICAL_ALIGN_TOP);
|
||
|
image.contain(
|
||
|
250,
|
||
|
250,
|
||
|
Jimp.HORIZONTAL_ALIGN_RIGHT | Jimp.VERTICAL_ALIGN_BOTTOM
|
||
|
);
|
||
|
```
|
||
|
|
||
|
Default align mode for `image.contain` is:
|
||
|
|
||
|
```js
|
||
|
Jimp.HORIZONTAL_ALIGN_CENTER | Jimp.VERTICAL_ALIGN_MIDDLE;
|
||
|
```
|