Fly Dynamic Image Resizer

Descripción

Check out the Github Repository ♥

One of the biggest problems theme developers face is the problem of multiple image sizes. When you upload an image in the media library, WordPress automatically creates thumbnails based on all the image sizes you have defined using add_image_size() whether you want to use them or not. So the vast majority of the images in wp-content/uploads directory are a waste, and are never used. This is not the optimum way of creating image sizes.

With this plugin, you can create as many image sizes as you want without the guilt of unnecessary image sizes taking up your disk space!

This is because the images created using this plugin are dynamically created when the image is called for the first time, rather than when it is uploaded. You can also delete the cached images for each image individually, or all the cached images.

How this plugin works

  1. You either define an image size in your code using the fly_add_image_size() function, or directly call the image size in the code
  2. The admin uploads the image in the media library, but the fly dynamic images are not created
  3. The user visits the page for the first time, and the image is dynamically created and is stored
  4. The user visits the page again for the second time, and the stored version of the image is served

Documentación

Here are some functions and example code to get you started!

fly_get_attachment_image_src( $attachment_id, $size, $crop )

  • attachment_id (integer)(required) : The ID of the image attachment
  • size (string/array)(required) : Either the name of the pre-defined size defined using fly_add_image_size, or an array with the width and height. Ex: array( 500, 500 )
  • crop (boolean/array)(optional) : Whether the image should be cropped, or the crop position

Returns an array:

array(
    'src' => string,
    'width' => integer,
    'height' => integer
)

 

fly_get_attachment_image( $attachment_id, $size, $crop, $attr )

  • attachment_id (integer)(required) : The ID of the image attachment
  • size (string/array)(required) : Either the name of the pre-defined size defined using fly_add_image_size, or an array with the width and height. Ex: array( 500, 500 )
  • crop (boolean/array)(optional) : Whether the image should be cropped, or the crop position
  • attr (array)(optional) : An array of attributes. Ex: array( 'alt' => 'Alt text', 'title' => 'Title text', 'class' => 'my-class', 'id' => 'my-id' )

Returns a HTML IMG element string:

<img src="http://yoursite.com/wp-content/uploads/fly-images/10/your-image-500x500-c.jpg" width="500" height="500" alt="Alt text" />

 

Example 1: Pre-defined Image Sizes

In this method, you define as many image sizes as you want in your functions.php file.

if ( function_exists( 'fly_add_image_size' ) ) {
    fly_add_image_size( 'home_page_square', 500, 500, true );
    fly_add_image_size( 'home_page_square_2x', 1000, 1000, true );
    fly_add_image_size( 'cropped_top_left', 1000, 1000, array( 'left', 'top' ) );
}

Now, lets get the post thumbnail using the image sizes we just defined:

<?php echo fly_get_attachment_image( get_post_thumbnail_id(), 'home_page_square' ); ?>

Here’s another way you can do this:

<?php $image = fly_get_attachment_image_src( get_post_thumbnail_id(), 'home_page_square' ); echo '<img src="' . $image['src'] . '" width="' . $image['width'] . '" height="' . $image['height'] . '" />'; ?>

Let’s get the image from our example above which has a crop position defined:

<?php echo fly_get_attachment_image( get_post_thumbnail_id(), 'cropped_top_left' ); ?>

 

Example 2: Dynamic Image Sizes

Lets get the post thumbnail using some dynamic image sizes:

<?php echo fly_get_attachment_image( get_post_thumbnail_id(), array( 500, 500 ), true ); ?>

Here’s another way you can do this:

<?php $image = fly_get_attachment_image_src( get_post_thumbnail_id(), 'home_page_square', array( 500, 500 ), true ); echo '<img src="' . $image['src'] . '" width="' . $image['width'] . '" height="' . $image['height'] . '" />'; ?>

Lets get the post thumbnail cropped from the bottom right:

<?php echo fly_get_attachment_image( get_post_thumbnail_id(), array( 500, 500 ), array( 'right', 'bottom' ) ); ?>

 

A note on Crop Positions

Crop positions are set using an array. The first parameter of the array needs to be the x-axis crop and the second parameter needs to be the y-axis crop. This feature will not work the other way around.

For example:

fly_get_attachment_image( get_post_thumbnail_id(), array( 500, 500 ), array( 'right', 'bottom' ) ) Will work! 🙂

fly_get_attachment_image( get_post_thumbnail_id(), array( 500, 500 ), array( 'bottom', 'right' ) ) Will not work! 🙁

Detailed Documentation

Check out the GitHub repository’s Wiki page for the full documentation: https://github.com/junaidbhura/fly-dynamic-image-resizer/wiki

Capturas

  • The Tools page
  • Delete individual images' cached fly images

Instalación

Upload ‘fly-dynamic-image-resizer’ to the ‘/wp-content/plugins/’ directory

Activate the plugin through the ‘Plugins’ menu in WordPress

Create dynamic image sizes in your PHP code!

Reseñas

28 de abril de 2023
I've been using this plugin for about 2 years now and it's really great. Don't have any complaints so far. Great work and thanks!
24 de abril de 2020
One of my "go to" plugins for just about any site - straightforward and does the job well. One modification that I have made is so that you can specify just the height OR width and are not required to specify both.
27 de marzo de 2020
Amazing plugin, and it hits the nail on the head as far as how WP should approach images. This plugin would benefit from some other image processing options - but overall, incredible work.
19 de diciembre de 2019
I have clients with sites that are 1GB large because of image sizes I need to create for Pagespeed or just layout purposes. One client has a 20GB /wp-content folder. That is ridiculous, but before this plugin, seemed necessary. This is an amazing, elegant solution and really should be included in core, i.e., "Don't create an image size until it's actually used." Thank you!
Leer todas las 21 reseñas

Colaboradores y desarrolladores

«Fly Dynamic Image Resizer» es un software de código abierto. Las siguientes personas han colaborado con este plugin.

Colaboradores

Traduce «Fly Dynamic Image Resizer» a tu idioma.

¿Interesado en el desarrollo?

Revisa el código , echa un vistazo al repositorio SVN o suscríbete al registro de desarrollo por RSS.

Registro de cambios

2.0.8

  • Fix error for WP_Filesystem in some edge cases #38

2.0.7

  • Fix file extensions in edge cases #38

2.0.6

  • New filter to potentially modify image path to work better with optimization plugins #33

2.0.5

  • Better multi-site support #19

2.0.4

  • Performance improvements #15

2.0.3

  • Added two new helper functions to get previously defined image sizes #14

2.0.2

  • Better handling of file names with decimals #10

2.0.1

2.0.0

1.0.5

  • Added support for crop positions. Images can now be cropped from the top, left, right, bottom or the default: center.
  • Added new hook ‘fly_image_created’.

1.0.4

1.0.3

  • Added new filter ‘fly_dir_path’.

1.0.2

  • Fixed IIS URLs.

1.0.1

  • Fixed user capabilities.
  • “Full” size for fly_get_attachment_image_src now returns wp_get_attachment_image_src

1.0.0

  • First stable release.