Fit mode is one of our most popular modes for image resizing. It ensures that the area described by the dimensions is entirely covered with the image and crops out any outstanding image parts that fall outside of the desired frame size. Today, we extended that mode with face-detection capabilities, allowing the resized image to focus on a single face or all the faces found in the input image.
Gravity In Fit Mode
To use face-directed resizing with fit mode, simply set face or faces (plural) as the value for the gravity parameter. For example:
{
"resize": {
"mode": "fit",
"gravity": "face",
"width": 640,
"height": 480
}
}
face gravity will center the output image on the largest (usually most prominent) detected face, while faces will compute a union of bounding boxes of all faces found in the image and focus the image on the center of that union. In other words, faces will make the best efforts to contain all of the faces in the output image. If no faces were found, the API will fall back to the default center gravity.
Quick Example
Here’s a quick example of said oprtation implemented with our official Node integration:
const Optidash = require("optidash");
const opti = new Optidash("your-api-key");
opti
.upload("/path/to/image.jpg")
.resize({
mode: "fit",
gravity: "face",
width: 640,
height: 480
})
.toJSON((err, meta) => {
if (err) {
return console.log(err);
}
});
Should you have questions about fit resizing, face detection or requests for other features do not hesitate to contact us anytime.