A question about image file formats

Hi, everyone - I’m putting an effort into collecting my notes about 3d graphics and working with Blender. I’m only now starting out with that and I am going to be asking many questions. I only wanted to mention that here in my first post.

This question is about image file formats. There are so many different image file formats, that it’s difficult to know what you should want (In my opinion).

I’m using Blender and Gimp, so as far as Gimp is concerned, the best format to use is .xcf to retain all information after using that program.

In Blender, I would like to keep the best and highest resolution for output so I can work with Gimp for a post process if necessary. What would be the best image format to use, where I know that I have kept all of the information that is possible from a render output.

Since there are so many formats, I’m assuming some of you might be biased toward one or another. Please try to give a little detail about the choice, or if possible, post a link where I might get a better explanation.

Blender does its render calculations as 32 bit full float, so 32 bit .exr will retain all the rendered image data. You won’t be able to use those in Gimp.

In general you would want to save into a format that uses lossless compression - so stay away from JPGs. Also, you might want to use an image format that supports alpha channels, so PNG, TGA or TIFF can be an option.

What I (purely personal preference!) mostly use is:

  • PNG 8bit for “just viewing” purposes, where no further editing is wanted or needed.
    • PNG 16bit for minor editing in Photoshop/Gimp.
    • OpenEXR (multilayer) for heavy editing, compositing etc.

Since I can’t use .exr files in Gimp, how can OpenEXR be useful to me?

So far I think the most useful option for me is PNG 16bit, but I’m very interested in more options. I looked at the OpenEXR website, and thought that it was mostly for persons using HDRI images.

You asked for the image file format that retains the most of Blender’s render result - and that’s 32bit OpenEXR. Yes, that’s an HDR image format - that’s why it’s so perfectly suited: Blender’s render results are HDRIs, too.

And don’t you forget something when it comes to the “usefulness” of the OpenEXR format? GIMP may be your image editor, but you can use another app for compositing that can use OpenEXR files just fine: Blender itself!

Here’s what I think is a very practical way to look at this: to realize that there really are two (and, very different!!) objectives for “an image file” (sic) to meet.

A true image file, such as BMP or JPG or PNG and so-on, really is purely-oriented towards “display.” Their goal is to efficiently (as in, compactly …) represent a picture that’s going to be drawn right-now in front of a pair of human eyeballs, on who-knows-what sort of display device. It’s perfectly well understood that “the most-magnificent set of advanced computing [strike]hard[/strike]wetware known to Man,” that is to say, “the human brain and human eyes and the human optic-nerve,” will Forgive All Sins. The stated engineering goal is that the image should look good. “Numbers,” in this case, “don’t matter so much. But, looks do.” Fundamentally: ​a picture.

Meanwhile . . . there is also a very different “case.”

A file-format such as .EXR or its cousin, MultiLayer OpenEXR, is not designed to be “displayed.” Instead, it is designed to contain a render-output data set, in all of its digital glory, specifically so that this data can be re-introduced into a perhaps very-large and very-complex digital rendering pipeline. Its contents really are: “a bunch of collections of floating-point numbers.” And, the primary goal is to be sure that “all of these numbers” are available, without loss or compromise. So that, if you decide to split a big computational production-line into two successive stages, you won’t lose (or “compress away,” or “recode,” etc. etc…) any data. Uh huh… it’s data. Data about an image, yes, but fundamentally: data.

Apples. And oranges. Two different types of file formats, both used to represent “an image,” yet each with altogether different purposes … and with respective designs that are carefully engineered to suit their purposes.

Blender knows how to “enjoy” both those apples-files and those oranges-files. However, they are never the same. By design, and by intent, they are “never the same.”