You may also notice that there was some rounding going on, even in my examples. You may have noticed there’s a bit of math involved with resizing images it’s nothing that requires an advanced degree, but it’s still not how I’d like to spend my afternoon. Even if you’re not using WordPress, I’d encourage you to look at the image_resize_dimensions() function and how it’s implemented this is a geometry problem that’s been solved before, so there’s no need to reinvent the wheel. Now that we have the hard-coded version, we’ll break this up into placeholders ( using proper escaping for shell arguments, of course) and we’ll find ourselves with the full, variable-filled version we had before! Gotchas With these numbers at hand, we can ask Gifsicle to resize our image to 267×150: Given the height, we can calculate the width thusly: $src_width / $src_height * $dst_height, or 500 / 281 * 150, which gives us a width of 267px. Confused? Just remember that we have a 16:9 aspect ratio, meaning the height is the smaller dimension and thus cannot end up smaller than 150px or we risk our 150×150 frame not being filled. Now, let’s say we want a square version of that same image, at 150×150. In order to achieve this, we need to perform two operations: resizing the image to fit as much of it as possible into a 150×150 box, then crop off anything outside that area.įortunately, resizing the image is easy: Gifsicle has a -resize option, and the math that led us to our getimagesize()-compatible calculations up above would tell us that to fit a 500×281 image in a 150×150 box, our target dimensions would be 267×150. The original dimensions of this image are 500×281, approximately a 16:9 aspect ratio. Well, that was easy, wasn’t it? In case you’re not well-versed in juggling arguments and using PHP to assemble CLI commands, we’ll apply some real numbers: let’s say we have this gif of America’s Sweetheart, Nick Offerman:
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |