Better image sizes

Better image sizes

Wordpress plugin

Install on Wordpress

App Details

This plugin is ment mostly for developers. You need to use its functions in your theme or plugin to make it works.

This plugin offers functionality like face detection crop, focal point selector for every image, function to output responsive <picture> sizes and more.

Why to use this plugin?

WordPress will automatically create a lot of smaller images for every uploaded image.
You mostly need just 1 or 2 of them, so this is a waste of your server space and resources.
Also cropped images are generated from the center by default, which can be a problem many times.

This plugin allows you to:

  • disable autogenerated image sizes
  • dynamically generate only needed image sizes for only needed images
  • delete generated image sizes from this plugin individually or all together
  • specify different focal point that will be in the focus while creating cropped versions of the image
  • automatically detect focal point by face detection algorithm
  • disable big image size threshold, so image bigger than 2560x2560px will be NOT scaled down

How it works

  1. if you disable existing autogenerated image sizes, then newly uploaded images will not create its sizes
  2. you need to specify in your code what size is needed for the image
  3. image is dynamically created on the first visit of the page and is stored in uploads folder
  4. every next visit of that page will just load already generated image

Functions

bis_get_attachment_image_src( $attachment_id, $size, $crop )

Function inspired by default wp_get_attachment_image_src.
If you used Fly Dynamic Image Resizer before, you don’t need to replace fly_get_attachment_image_src functions in your code – there is a fallback, so you can deactivate Fly Dynamic Image Resizer and it will still work.

Parameters:

  • attachment_id (integer)(required)
    The ID of the image attachment
    Example: 123 or get_post_thumbnail_id() or get_field('my_image')

  • size (array)(required)
    An array with the width and height
    Example: [ 1920, 1080 ]

  • crop (boolean/integer/array/string)(optional)
    Skip this or pass false or 0 if you don’t want to crop, just rescale,
    otherwise pass true or 1 to use focal point crop that is selected in admin media (by default center),
    or pass array with string x-axis and y-axis parameters like [ 'right', 'bottom' ]
    or pass array with numeric x-axis and y-axis parameters like [ 0.5, 0.8 ]
    or pass string 'face' to automatically detect face position (can be exhaustive on server resources)

Returns:

array( 'src' => (string) url of the image, 'width' => (integer) width in pixels, 'height' => (integer) height in pixels ) 

&nbsp;

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

Function inspired by default wp_get_attachment_image.
If you used Fly Dynamic Image Resizer before, you don’t need to replace fly_get_attachment_image functions in your code – there is a fallback, so you can deactivate Fly Dynamic Image Resizer and it will still work.

Parameters:

  • attachment_id (integer)(required)
    The ID of the image attachment
    Example: 123 or get_post_thumbnail_id() or get_field('my_image')

  • size (array)(required)
    An array with the width and height
    Example: [ 1920, 1080 ]

  • crop (boolean/integer/array/string)(optional)
    Skip this or pass false or 0 if you don’t want to crop, just rescale,
    otherwise pass true or 1 to use focal point crop that is selected in admin media (by default center),
    or pass array with string x-axis and y-axis parameters like [ 'right', 'bottom' ]
    or pass array with numeric x-axis and y-axis parameters like [ 0.5, 0.8 ]
    or pass string 'face' to automatically detect face position (can be exhaustive on server resources)

  • attr (array)(optional)
    An array of attributes
    Special attribute retina allows you to automatically generate srcset for @2x retina devices
    Example: array( 'retina' => true, 'alt' => 'Custom alt text', 'class' => 'my-class', 'id' => 'my-id' )

Returns:

<img src="https://web.com/wp-content/uploads/bis-images/1234/your-image-500x500-f50_50.jpg" width="500" height="500" alt="Alt text"> 

&nbsp;

bis_get_attachment_picture( $attachment_id, $sizes, $attr )

Parameters:

  • attachment_id (integer)(required)
    The ID of the image attachment
    Example: 123 or get_post_thumbnail_id() or get_field('my_image')

  • sizes (array)(required)
    An array with the key => value pair
    where key means breakpoint
    and value is array of width, height, crop and alternative_attachment_id
    Example: [ 767 => [ 767, 400, 1, 987 ], 9999 => [ 1200, 500, 1 ] ]
    This will generate <source media="(max-width:767px)" srcset="image987_767x400.jpg">
    and <source media="(max-width:9999px)" srcset="image_1200x500.jpg">
    and <source media="(min-width:10000px)" srcset="image.jpg">

  • attr (array)(optional)
    An array of attributes
    Special attribute retina allows you to automatically generate srcset for @2x retina devices
    Example: array( 'retina' => true, 'alt' => 'Custom alt text', 'class' => 'my-class', 'id' => 'my-id' )

Example:
To generate perfect fullwidth hero image, that will looks great on 4K devices and also on small phones, but it will load only needed size, you can use:

echo bis_get_attachment_picture( get_post_thumbnail_id(), [ 375 => [ 375, 500, 1, 987 ], 575 => [ 575, 500, 1, 987 ], 767 => [ 767, 500, 1, 987 ], 991 => [ 991, 500, 1 ], 1199 => [ 1199, 500, 1 ], 1399 => [ 1399, 500, 1 ], 1600 => [ 1600, 500, 1 ], 1920 => [ 1920, 500, 1 ], 2560 => [ 2560, 500, 1 ], 3440 => [ 3440, 500, 1 ], 3840 => [ 3840, 500, 1 ], ] ); 

Returns:

<picture> <source media="(max-width:375px)" srcset="https://web.com/wp-content/uploads/bis-images/987/your-image-375x500-f50_50.jpg"> <source media="(max-width:575px)" srcset="https://web.com/wp-content/uploads/bis-images/987/your-image-575x500-f50_50.jpg"> <source media="(max-width:767px)" srcset="https://web.com/wp-content/uploads/bis-images/987/your-image-767x500-f50_50.jpg"> <source media="(max-width:991px)" srcset="https://web.com/wp-content/uploads/bis-images/123/your-image-991x500-f50_50.jpg"> <source media="(max-width:1199px)" srcset="https://web.com/wp-content/uploads/bis-images/123/your-image-1199x500-f50_50.jpg"> <source media="(max-width:1399px)" srcset="https://web.com/wp-content/uploads/bis-images/123/your-image-1399x500-f50_50.jpg"> <source media="(max-width:1600px)" srcset="https://web.com/wp-content/uploads/bis-images/123/your-image-1600x500-f50_50.jpg"> <source media="(max-width:1920px)" srcset="https://web.com/wp-content/uploads/bis-images/123/your-image-1920x500-f50_50.jpg"> <source media="(max-width:2560px)" srcset="https://web.com/wp-content/uploads/bis-images/123/your-image-2560x500-f50_50.jpg"> <source media="(max-width:3440px)" srcset="https://web.com/wp-content/uploads/bis-images/123/your-image-3440x500-f50_50.jpg"> <source media="(max-width:3840px)" srcset="https://web.com/wp-content/uploads/bis-images/123/your-image-3840x500-f50_50.jpg"> <source media="(min-width:3841px)" srcset="https://web.com/wp-content/uploads/2022/11/your-image.jpg"> <img width="4000" height="2000" src="https://web.com/wp-content/uploads/2022/11/your-image.jpg" alt="Some alt" loading="lazy"> </picture> 

&nbsp;

There is no fallback for fly_add_image_size function

If you used Fly Dynamic Image Resizer before, you need to remove fly_add_image_size functions from your code.
You can create your own variables for sizes if you need it, like

define( 'MY_CUSTOM_SIZE', [ 1000, 200 ] ); 

and then just us it inside functions, like:

echo bis_get_attachment_image( get_post_thumbnail_id(), MY_CUSTOM_SIZE ); 

&nbsp;

Support other extensions than JPG, PNG and WEBP

This plugin works by default only with JPG, PNG and WEBP files,
but you can easily allow any other mime types,
just use this code eg. in wp-config.php or in your functions.php

define( 'BIS_ALLOWED_MIME_TYPES', array( 'image/jpeg', 'image/png', 'any_other/mime_type' ) ); 

&nbsp;

Get selected image focal point

Focal point data are stored in the attachement post metas.
There is also custom sanitize function, that you can use.

$focal_point = sanitize_focal_point( get_post_meta( get_post_thumbnail_id(), 'focal_point', true ) ); 

Returns:

array( 0.5, 0.8 ) 

which means that focal point is 50% from left and 80% from top

Pricing

Starting from $0 per month.

Check Out the Lottie Player Widget

By Common Ninja

Lottie PlayerTry For Free!

App Info

Rating

Reviewers

2 reviews

Tags

images
media
retina
sizes
thumbnails

Developed By

kubiq

Quick & Easy

Find the Best Wordpress plugins for you

Common Ninja has a large selection of powerful Wordpress plugins that are easy to use, fully customizable, mobile-friendly and rich with features — so be sure to check them out!

Testimonial

Testimonial plugins for Wordpress

Contact Form

Contact Form plugins for Wordpress

Maps

Maps plugins for Wordpress

Translation

Translation plugins for Wordpress

Chat

Chat plugins for Wordpress

Slider

Slider plugins for Wordpress

Reviews

Reviews plugins for Wordpress

Contact

Contact plugins for Wordpress

Galleries

Galleries plugins for Wordpress

SEO

SEO plugins for Wordpress

Forms

Forms plugins for Wordpress

Comments

Comments plugins for Wordpress

Backup

Backup plugins for Wordpress

Privacy

Privacy plugins for Wordpress

Optimize

Optimize plugins for Wordpress

Tabs

Tabs plugins for Wordpress

Social Sharing

Social Sharing plugins for Wordpress

Events Calendar

Events Calendar plugins for Wordpress

Comments

Comments plugins for Wordpress

Social Feeds

Social Feeds plugins for Wordpress

Social Sharing

Social Sharing plugins for Wordpress

Portfolio

Portfolio plugins for Wordpress

Video Player

Video Player plugins for Wordpress

popup

popup plugins for Wordpress

SiteMap

SiteMap plugins for Wordpress

Payment

Payment plugins for Wordpress

Coming Soon

Coming Soon plugins for Wordpress

Inventory

Inventory plugins for Wordpress

Testimonials

Testimonials plugins for Wordpress

Portfolio

Portfolio plugins for Wordpress

Membership

Membership plugins for Wordpress

Forms

Forms plugins for Wordpress

Analytics

Analytics plugins for Wordpress

Events Calendar

Events Calendar plugins for Wordpress

Sliders

Sliders plugins for Wordpress

Analytics

Analytics plugins for Wordpress

Reviews

Reviews plugins for Wordpress

Security

Security plugins for Wordpress

Ads

Ads plugins for Wordpress

Music Player

Music Player plugins for Wordpress

Countdown

Countdown plugins for Wordpress

Email Marketing

Email Marketing plugins for Wordpress

Membership

Membership plugins for Wordpress

Ecommerce

Ecommerce plugins for Wordpress

Customer Support

Customer Support plugins for Wordpress

Video Player

Video Player plugins for Wordpress

Tabs

Tabs plugins for Wordpress

Social Feeds

Social Feeds plugins for Wordpress

Common Ninja Apps

Some of the best Common Ninja plugins for Wordpress

Browse our extensive collection of compatible plugins, and easily embed them on any website, blog, online store, e-commerce platform, or site builder.

Lottie Player for Wordpress logo

Lottie Player

Use a Lottie player to embed lightweight JSON animations that improve visual design, keep pages fast, and create a smoother user experience.

Social Media Links for Wordpress logo

Social Media Links

Use social media links with sticky buttons that keep your profiles visible, boost engagement, and help promote your content more effectively across your site.

Glassdoor Reviews for Wordpress logo

Glassdoor Reviews

Show Glassdoor reviews to highlight employee feedback, strengthen employer brand, and help candidates trust your company.

Notification Popup for Wordpress logo

Notification Popup

Show alerts and updates with a notification popup that grabs attention, delivers important messages, and improves user experience.

Live Weather Forecast for Wordpress logo

Live Weather Forecast

Use a live weather forecast widget to show current conditions and upcoming predictions, giving visitors real time local weather updates for better planning.

Payment Method Logos for Wordpress logo

Payment Method Logos

Show payment method logos that highlight accepted payment options, build trust at checkout, and help visitors feel confident completing their purchase.

Support Form for Wordpress logo

Support Form

Use a support form that lets customers submit tickets, saves each request, sends notifications, and helps you manage support more efficiently.

Social Proof Avatars for Wordpress logo

Social Proof Avatars

Display social proof avatars that show user activity and ratings, build trust instantly, and help visitors feel confident about your credibility.

Image Poll for Wordpress logo

Image Poll

Create interactive image polls that use compelling visuals to boost engagement, gather feedback, and help visitors vote easily.

Appointment Booking for Wordpress logo

Appointment Booking

Manage appointments with an appointment booking widget that lets visitors schedule easily, syncs calendars, sends reminders, and creates a smoother booking experience.

Blogger Feed for Wordpress logo

Blogger Feed

Show Blogger posts automatically with a Blogger feed that keeps your content fresh, improves navigation, and helps visitors discover more of your work.

Sticky Video for Wordpress logo

Sticky Video

Use a sticky video that stays visible while users scroll to keep content in view, increase watch time, and boost engagement.

More plugins

plugins You Might Like

Discover Apps By Platform

Discover the best apps for your website

WordPress
Wix
Shopify
Weebly
Webflow
Joomla
PrestaShop
Shift4Shop
WebsiteX5
MODX
Opencart
NopCommerce

Common Ninja Search Engine

The Common Ninja Search Engine platform helps website builders find the best site widgets, apps, plugins, tools, add-ons, and extensions! Compatible with all major website building platforms - big or small - and updated regularly, our Search Engine tool provides you with the business tools your site needs!

Multiple platforms