Jump to content
happywire

ImageSizerEngineIMagick module resize options

Recommended Posts

I installed the ImageSizerEngineIMagick module and am using @Soma 's hook  to create image variations in the admin panel when uploading a new image.

1.
How can I limit the ImageSizerEngineIMagick module to not create image variations that are above the original file's dimensions?
For example I have this image.
https://www.jpl.nasa.gov/spaceimages/details.php?id=PIA13128

Full resolution.

https://photojournal.jpl.nasa.gov/jpeg/PIA13128.jpg

Using Soma's hook and adding the image variation sizes I want to be created like this..

<?php
// https://gist.github.com/somatonic/5685631

// not all the hook is inserted here, this is just to show the image size variations

public function sizeImage($event)
    {
        $inputfield = $event->object;

        if ($inputfield->name != 'images') return;

        $defaultOptions = array(
            'upscaling' => false,
            'cropping'  => false,
            'quality'   => 100
        );

        $image = $event->argumentsByName("pagefile");

        $image->size(9000, 0, $defaultOptions);
        $image->size(7680, 0, $defaultOptions);
        $image->size(3200, 0, $defaultOptions);
        $image->size(2560, 0, $defaultOptions);
        $image->size(1920, 0, $defaultOptions);
        $image->size(1280, 0, $defaultOptions);
        $image->size(800, 0, $defaultOptions);
        $image->size(768, 0, $defaultOptions);
        $image->size(240, 0, $defaultOptions);
        $image->size(180, 0, $defaultOptions);
  
    }

..I get the following image size variations.

Screenshot_20190315_140520.png.14cef2dc4dcbf7524bf6611b48a9fa2b.png

This means that regardless of image dimensions there are variations created that are above the original file dimension.
How can I tell the module or include what logic in the hook that I do not want to create image variations that are above the dimensions of the original image?

2.
The original is max 2MB big and has a max width of 4801px.
Having the quality set to 100 in the module I get images that have a bigger file size than the original at a lower dimension.

An image variation of 1920px width is created with 2.9MB.
An image variation of 2560px width is created with 4.4MB.
An image variation of 3200px width is created with 6.0MB.

Setting the quality to 90 following image variations are created.

Screenshot_20190315_141656.png.863c70b9bb295aa13e785bafb131fa35.png

Does that mean I cannot put the quality setting of the module to 100 as otherwise image variations that have a higher file size than the original are being created at lower dimensions of the original?
Does ImageMagick work like this with the quality being 100?

Share this post


Link to post
Share on other sites
3 hours ago, happywire said:

How can I limit the ImageSizerEngineIMagick module to not create image variations that are above the original file's dimensions?

What about:

if($image->width > 9000) $image->size(9000, 0, $defaultOptions);

I'd anyway prefer something generic like (You'll probably want to account for landscape and portrait as well):

$imgWidth = $image->width;
while($imgWidth > 400)	// Larger than minimum?
	{
	$imgWidth /= 2;	// half size (or whatever factor)
	$image->size($imgWidth, 0, $defaultOptions);
	}

Not sure about the ImageMagick quality setting, but "max" quality of a JPEG normally relates to its (I'll name it) "cluster" size. The higher the quality setting, the smaller the cluster is. This has nothing to do with "keep quality from original", which may be encoded with a lower quality setting, which seems to be the case in your example.

  • Like 1
  • Thanks 1

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...