Jump to content

Palettes and the 8 Bit Png Save


Go to solution Solved by Rick Brewster,

Recommended Posts

I want to save a 4000x4000 pixel graphic. Very detailed. Since this is for the web, I want it to be as low memory as possible.

 

I have tinkered with all the saves.

 

1. JPEG gives me loads of artifacts with higher compression. (The picture needs to look clean looking as it will be viewed at higher magnification in the web page.)

2. GIF does the same.

3. 24/32 bit png are waaay too high memory. (Over 20mb) But the good thing about this save is the pixels in the result can be made to look clean.

 

However, the 8 bit png save with 0 dither (whatever that is) looks great. For me its 4.75mb. Its a bit higher than I would like.

 

If I resize the pic to 2000x2000 some of the detail is lost so does not look as good, but could be considered acceptable. The 8 bit, 0 dither save comes in at 1.39mb.

 

The best CLEAN resizing is Nearest Neighbour. However, 1 px lines can sometimes disappear with the 50% resize obviously. Are there any addons that give other options for resizing?

 

1.39mb would be a great save size, but as I say the 2000x2000 loses some of the detail which will be viewed under magnification on the web page where it will live.

 

The Questions

 

So how do I define the palette in the 8 bit save? At the moment I have 32 colours in the colour window.

 

Is that the palette that is being used in the 8 bit save?

 

I think I can see how to create more palette entries.

 

How do I get a consistent palette with multiple picture saves?

 

Are there any better Resize addons to result in a CLEAN (less blended) results that do not hide 1px lines?

 

Link to comment
Share on other sites

Try using a modern image format like AVIF.  All the web browsers support it these days.

 

It should give you a smaller filesize with higher quality.

 

Netflix has a fantastic blog post comparing it to other formats.

https://netflixtechblog.com/avif-for-next-generation-image-coding-b1d75675fe4

 

(September 25th, 2023)  Sorry about any broken images in my posts. I am aware of the issue.

bp-sig.png
My Gallery  |  My Plugin Pack

Layman's Guide to CodeLab

Link to comment
Share on other sites

The palette is auto-generated from the image using the algorithm you select in the save options. Octree vs. Median Cut. Choose whichever works best for what you need.

 

If your image has 256 colors or less, the palette will be an exact match when using 8-bit depth. Similarly for 16 colors and 4-bit, 4 colors at 2-bit, and 2 colors at 1-bit.

The Paint.NET Blog: https://blog.getpaint.net/

Donations are always appreciated! https://www.getpaint.net/donate.html

forumSig_bmwE60.jpg

Link to comment
Share on other sites

1 hour ago, toe_head2001 said:

Try using a modern image format like AVIF.  All the web browsers support it these days.

 

Safari/macOS does not support AVIF, although macOS 13 is reportedly adding support for it.

 

WebP with lossless compression is another option to try.

PdnSig.png

Plugin Pack | PSFilterPdn | Content Aware Fill | G'MICPaint Shop Pro Filetype | RAW Filetype | WebP Filetype

The small increase in performance you get coding in C++ over C# is hardly enough to offset the headache of coding in the C++ language. ~BoltBait

 

Link to comment
Share on other sites

16 hours ago, toe_head2001 said:

Try using a modern image format like AVIF.  All the web browsers support it these days.

 

It should give you a smaller filesize with higher quality.

 

Netflix has a fantastic blog post comparing it to other formats.

https://netflixtechblog.com/avif-for-next-generation-image-coding-b1d75675fe4

 

 

AVIF: This was ok, but did not work on Edge (at least with the standard setup). However, it did have some blurry areas when the file size was reduced to 'happy' levels.

 

15 hours ago, null54 said:

 

Safari/macOS does not support AVIF, although macOS 13 is reportedly adding support for it.

 

WebP with lossless compression is another option to try.

 

WebP: This was a bit better, but with slightly higher file sizes. Had a lot less blurry areas. But when there was something in the image that was notably different from its surrounding, we had the blurry area issue.

 

So at the moment, even though the file size is slightly higher than I would have hoped, I think I will try the 8 bit, 0 dither as that gets the picture looking exactly as I hoped, but with an acceptabley, but not perfectly, lower file size.

 

16 hours ago, Rick Brewster said:

The palette is auto-generated from the image using the algorithm you select in the save options. Octree vs. Median Cut. Choose whichever works best for what you need.

 

If your image has 256 colors or less, the palette will be an exact match when using 8-bit depth. Similarly for 16 colors and 4-bit, 4 colors at 2-bit, and 2 colors at 1-bit.

 

Octree vs Median Cut: These appear to be good, but I am concerned I may need to set the palette myself to have the same palette over multiple pictures.

 

Your second sentence appears promising.

 

So the question now is, 'Is there any way by addons to force a palette of my choosing on my picture PRIOR to the save, so I can have a consistent palette across pictures?'

Edited by JAA
My spelling and grammar will not win awards. I blame my brain.
Link to comment
Share on other sites

  • Solution
5 minutes ago, JAA said:

So the question now is, 'Is there any way by addons to force a palette on my picture PRIOR to the save, so I can have a consistent palette across pictures?'

 

There might be -- others may know of a plugin that can help here.

 

What you need is a version of Effects -> Color -> Quantize that lets you specify the palette. Quantization is performed in two steps: 1) palette generation, 2) quantization + dithering. All the plugin would need to do is skip the first part and use a palette you specify instead of one generated from analyzing the image.

 

The quantization and dithering code in Paint.NET is fast and high quality, it's (generally) better if a plugin doesn't roll their own solution. I can enable this scenario if a plugin dev is interested in this, by making Paint.NET's internal quantizer available for use by plugins (I may even already have this planned for the next big release (not 4.3.x), I think @midora was asking for it).

The Paint.NET Blog: https://blog.getpaint.net/

Donations are always appreciated! https://www.getpaint.net/donate.html

forumSig_bmwE60.jpg

Link to comment
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.

×
×
  • Create New...