resize images not crop

Custom Image Sizes

Resizing without cropping is already part of the core functionality, via add_image_size().

Note the last parameter:

<?php add_image_size( $name, $width, $height, $crop ); ?>

The Codex entry describes the $crop parameter as follows:

$crop

(boolean) (optional) Crop the image or not. False – Soft proportional crop mode ; True – Hard crop mode.
Default: false

I prefer to describe the option as hard-crop vs. box-resize. Hard-crop will crop the image based on the most-restrained dimension, whereas box-resize will simply resize the image, retaining its original dimension proportions.

So, to create a box-resized image size, simply define it as follows:

add_image_size( 'image-size-name', $width, $height, false );

Note that this behavior is the default setting. In order to hard-crop, you have to explicitly specify $crop to be true.

Post Thumbnails

Changing the post-thumbnail image size to box-resize is similar; simply use set_post_thumbnail_size(), which also has a $crop parameter:

 <?php set_post_thumbnail_size( $width, $height, $crop ); ?>

Reserved Image Sizes

I’m pretty sure 'medium' and 'large' image sizes are already box-resized rather than hard-cropped.

Leave a Comment