Jump to content
thausmann

WebP is not generated if source PNG already has target size

Recommended Posts

Hey, I'm trying to completely switch over to WebP and noticed some strange behaviour. Let's say I upload a PNG in Processwire of size 1280x800.

  • $page->image->url ➝ correct URL (filename.webp)
  • $page->image->width(800)->url ➝ correct URL (filename.800x0.webp)
  • $page->image->width(1280)->url wrong URL (filename.1280x0.png), webp file is not generated
  • $page->image->width(1280)->url(false)correct URL (filename.1280x0.webp) but webp file is not generated

So: When I request a size that equals the original file, no WebP conversion is happening (no webp file is created, although a new PNG is generated (...1280x0.png)).
When I use url(false), I get the expected URL but still the file is not generated. Also interesting: this issue is only occuring with PNG, not JPG.

 

My Configuration:

$config->imageSizerOptions('webpAdd', true); 
$config->imageSizerOptions('defaultGamma', -1); 
  • GD
  • Pageimage::url Hook from here 
  • Also tried to output width(1280)->webp->url, it makes no difference
  • I checked that the PNG version is not smaller in filesize (PNG=450KB, WebP (from other tool)=60KB)
  • Tested with Processwire 3.0.148 and 3.0.160 dev
  • I think this post is about the same issue and where I got the url(false) from.
  • Setting 'useSrcUrlOnFail' => false inside $config->webpOptions results in correct output URL (filename.1280x0.webp), but still the file is not generated. So maybe the webp conversion fails? Apparently I see zero webp logs in logs/image-resizer.txt

 

"Don't use resize" seems like a solution here but this is a generic approach in my code, sometimes uploaded images are simply already in the correct size. 

Any ideas how to fix this and always get dem sweet sweet WebP images? Or did I find a bug?
Maybe @horst has an idea what the cause of this phenomenon could be? 😇

Share this post


Link to post
Share on other sites

Have you also tried this:

$page->image->width(1280)->webp()->url

 

Share this post


Link to post
Share on other sites
16 minutes ago, horst said:

Have you also tried this:


$page->image->width(1280)->webp()->url

 

Thanks for your reply! I just tried that and apparently it gives me the same png url filename.1280x0.png.

As soon as I go 1 pixel up or down I get a webp URL. 

Share this post


Link to post
Share on other sites
17 hours ago, thausmann said:

Thanks for your reply! I just tried that and apparently it gives me the same png url filename.1280x0.png.

This is weird. Please can you post an issue on GitHub with this, so that Ryan gets informed about it?

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • By ThierryGD
      Hi there,
      I've been resizing some .png and got some pretty visible loss of quality. I attached those for comparison - around the Titanic (I know, they're big).
      I tried to find similar threads but couldn't find anything that helped - at least it made me install Horsts IMagick Image Sizer.  
      foreach($detailrp->detail_repeater_bild as $pRetinaBild) { if ($pRetinaBild->width > $pRetinaBild->height) { // 3320px wide $pHighBild = $pRetinaBild->size(1660, 0); $pLowBild = $pRetinaBild->size(830, 0); } else { // 3220px high $pHighBild = $pRetinaBild->size(0, 1610); $pLowBild = $pRetinaBild->size(0, 805); } Anyone has any idea what causes this and how to solve it? Or should I just go with .jpg? Thx!


    • By eutervogel
      Hi, 
      what I'm doing is this:
       
      <picture> <source srcset="<?php echo $page->section_three->main_img->first()->size(396,710)->webp->url; ?>" type="image/webp"> <img class="p_absoulte pp_block" src="<?php echo $page->section_three->main_img->first()->size(396,710)->url; ?>" alt=""> </picture> and for some reason it sometimes becomes this:
      <picture> <source srcset="/site/assets/files/1057/sektion3_bild-1.396x710.png" type="image/webp"> <img class="p_absoulte pp_block" src="/site/assets/files/1057/sektion3_bild-1.396x710.png" alt=""> </picture> It seems to be related to ->size(). When I don't use ->size() the webp Url is correct.
      I'm using the image-field inside a Fieldset(Page). Could that be a problem too?
      I just increased the output size by 2px and voila the webp url comes up. 
      I deleted all variations (webp variation is present in correct size) changed it back to the original size and again: a png url.

      I also tried to rename the image and load it up agian. 
      ...same behavoir.
      Thanks in advance guys
       
    • By Peter Knight
      Is anyone here using WEBP as their output image format and what is your server / environment setup?
       I know there's support for it in PW lately and decided to investigate.
      Found it quite difficult to do this on a practical level. IE My current VPS is Cent OS 6 and Plesk and unless I'm wrong, WEBP is not supported by either.
      Which host and setup are you on that allows you to run WebP?
      Cheers
    • By klikrzys
      Hello processwire world!
      Im having a little problem with getting my image in WEBP format.
      $image = $pages->get('/')->images->first();             echo $image->webp()->url();
×
×
  • Create New...