When generating images to be used in a
srcset, the media library will calculate a set of target widths. The class responsible for generating the target widths can be specified in the
responsive_images.width_calculator key of the
medialibrary config file.
The default calculator
The default width calculator shipped with the media library is named
FileSizeOptimizedWidthCalculator. This class uses an algorithm which produces widths of which it is predicted that each one results in a file being ±70% of the filesize of the previous variation. The class will keep generating variations until the predicted file size is lower than 10 Kb or the target width is less than 20 pixels. So for an image with large dimensions the medialibrary will generate more variations than for an image with smaller dimensions.
Using your own width calculator
In most cases the default
FileSizeOptimizedWidthCalculator will generate pretty good results. But if for some reason you need to customize the behaviour you can specify your own class in the
responsive_images.width_calculator of the
media-library config file. A valid width calculator is any class that implements the
Spatie\MediaLibrary\ResponsiveImages\WidthCalculator\WidthCalculator interface. Both the
calculateWidths should return a
Collection that contains the desired widths the responsive images should have.