Author |
Topic |
|
EricNat
USA
37 Posts |
Posted - Oct 19 2022 : 23:07:52
|
When I save an image using ImageMagick from ImageEnView, I am getting a very low quality image with lots of artifacting.
For example:
Image->IO->SaveToStream(s,iomscWEBP);
I am loading ImageMagick with the plugin:
IEGlobalSettings()->RegisterPlugIns();
The image seems to load into ImageEnView ok, but when saving it is using very low quality.
Any ideas?
Thanks, Eric
|
|
xequte
38610 Posts |
Posted - Oct 20 2022 : 04:20:34
|
Hi Eric
Try specifying the WebP properties
// Save a PNG file as a lossless WebP with maximum compression
ImageEnView1.IO.SaveToFile('D:\Image.png');
ImageEnView1.IO.Params.Dict.Insert( 'ImageMagick', TIEDictionary.Create() );
ImageEnView1.IO.Params.Dict.GetDictionary('ImageMagick').Insert( 'webp:lossless', True );
ImageEnView1.IO.Params.Dict.GetDictionary('ImageMagick').Insert( 'webp:method', 6 );
ImageEnView1.IO.SaveToFile('D:\Image_out.webp');
They are defined at: - http://imagemagick.org/script/webp.php - http://imagemagick.org/script/defines.php
Nigel Xequte Software www.imageen.com
|
|
|
EricNat
USA
37 Posts |
Posted - Nov 01 2022 : 17:32:08
|
Unfortunately, I am still not having any progress with this after trying many different things.
One thing that is confusing is exactly how the dictionary entries are supposed to be defined. In a few places, they are defined like you have above. But in the Help files, it shows:
// Save a JPEG as WebP at 95% quality (using ImageMagick plug-in) ImageEnView1.IO.LoadFromFile( 'D:\Image.jpg' ); ImageEnView1.IO.Params.Dict.Clear(); ImageEnView1.IO.Params.Dict.Insert( 'ImageMagick:Quality', 95 ); ImageEnView1.IO.SaveToFile( 'D:\Image_out.WebP' );
I have tried both ways, and neither seems to change the quality. Also, when I use the ImageMagick command line, the image looks good with the defaults (no parameters specified about quality, lossless, etc.). Shouldn't the plug in be using the same defaults?
Whenever I save from ImageEn as WEBP, it is degrading the quality substantially. Attached is an example. The first is the input and the second is what I'm getting on the save.
Any help would be greatly appreciated.
Thanks! Eric
|
|
|
EricNat
USA
37 Posts |
|
xequte
38610 Posts |
Posted - Nov 01 2022 : 21:16:43
|
Hi Eric
We are only passing the specified params to ImageMagick, so we cannot be sure what effect they have other than by testing it.
From my testing setting 'ImageMagick:Quality' does not have any discernible effect with WebP (I will update the documentation)
You are better to use the WebP parameters:
ImageEnView1.IO.LoadFromFile('D:\Alpha_2.png');
ImageEnView1.IO.Params.SetDefaultParams();
ImageEnView1.IO.Params.Dict.Insert( 'ImageMagick', TIEDictionary.Create() );
ImageEnView1.IO.Params.Dict.GetDictionary('ImageMagick').Insert( 'webp:lossless', Lossless );
ImageEnView1.IO.Params.Dict.GetDictionary('ImageMagick').Insert( 'webp:method', Method );
ImageEnView1.IO.SaveToFile('D:\'+outFN+'.webp');
Lossless=False, Method=6:
Lossless=False, Method=1:
Lossless=True:
It seems that Lossless gives worse quality than lossy here because the source contains anti-aliased (partially transparent) pixels.
I'm not seeing the low quality result that you are. Ensure that you do not have an old version of the ImageEn ImageMagick plug-in and/or ImageEn library.
Nigel Xequte Software www.imageen.com
|
|
|
xequte
38610 Posts |
Posted - Nov 02 2022 : 20:18:00
|
Sorry, working with your original image (the source WebP) it looks like when loading the alpha channel is not supported for gray-scale WebP images like this. We will investigate.
Nigel Xequte Software www.imageen.com
|
|
|
EricNat
USA
37 Posts |
Posted - Nov 11 2022 : 13:06:49
|
Thanks Nigel. Yes, I realized that I thought it was happening when it was being saved but it turns out the issue is happening when the webp file is being opened in ImageEnView. Sorry I didn't realize that earlier. Please let me know what you find out. Thank you! |
|
|
EricNat
USA
37 Posts |
Posted - Nov 21 2022 : 16:53:59
|
Hi, any update on this issue? Thanks! |
|
|
xequte
38610 Posts |
Posted - Nov 21 2022 : 22:31:40
|
Hi Eric
Yes, this will be fixed in our upcoming v11.4.5 (released in the next week or so).
Nigel Xequte Software www.imageen.com
|
|
|
EricNat
USA
37 Posts |
Posted - Nov 21 2022 : 22:34:19
|
Wonderful. Thank you! |
|
|
EricNat
USA
37 Posts |
Posted - Dec 07 2022 : 01:26:33
|
Hi Nigel,
I've updated to the latest 11.4.5.
Now, when opening the above webp test image, it opens fine.
However, when I go to save it, it is not saving properly. I've attached what I'm getting as the output. I am doing:
Image->IO->LoadFromFile("webptest.webp"); Image->IO->SaveToFile("test.webp",iomscWEBP);
attach/EricNat/202212712157_test.zip 30.56 KB
I am registering ImageMagick at startup with RegisterPlugIns();
Any idea what is causing that?
Thanks. |
|
|
xequte
38610 Posts |
Posted - Dec 07 2022 : 22:23:18
|
Hi Eric
I've added support for ie1g and alpha channel in the current beta. Please email me for it.
Nigel Xequte Software www.imageen.com
|
|
|
EricNat
USA
37 Posts |
Posted - Sep 08 2023 : 18:26:27
|
Hi,
The latest versions are working properly when saving as WEBP format. However, we are still seeing artifacting when we open the WEBP image and then try to save it as a PNG. Is there some way around this or is this a bug?
Here is our code:
gImageMagickPath="\\webp test\\Win32\\Debug"; IEGlobalSettings()->RegisterPlugIns(); Image->IO->LoadFromFile("webptest.webp"); Image->IO->SaveToFile("test.webp",iomscWEBP); Image->IO->SaveToFile("test.png",ioPNG);
Using the same image provided previously - the sheet icon with the letters PNG on it.
The test.webp looks great now. But when saved as PNG, it has the same artifacting that it had before.
Thank you, Eric
|
|
|
xequte
38610 Posts |
Posted - Sep 10 2023 : 19:13:46
|
Hi Eric
PNG only supports alpha when 32bit (24bit+Alpha), so you need to increase the color depth:
IEGlobalSettings().AutoSetBitDepth := True;
ImageEnView1.IO.LoadFromFile( 'D:\wepbtest.webp' );
ImageEnView1.IEBitmap.PixelFormat := ie24RGB;
ImageEnView1.IO.SaveToFile( 'D:\wepbtest.png' );
Nigel Xequte Software www.imageen.com
|
|
|
EricNat
USA
37 Posts |
Posted - Sep 10 2023 : 22:51:58
|
That did it! Thanks so much. |
|
|
|
Topic |
|