Skip to main content

Notice

Please note that most of the software linked on this forum is likely to be safe to use. If you are unsure, feel free to ask in the relevant topics, or send a private message to an administrator or moderator. To help curb the problems of false positives, or in the event that you do find actual malware, you can contribute through the article linked here.
Topic: Can foobar2000 display album art using your ICC profile? (Read 3293 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

Can foobar2000 display album art using your ICC profile?

If my display has an ICC profile, is there a way for foobar2000 to use this when displaying album art?

Without this, the color for some album art looks very off, as compared to viewing art in programs that support color management (e.g. Photoshop, Chrome, ...).

Re: Can foobar2000 display album art using your ICC profile?

Reply #1
If my display has an ICC profile, is there a way for foobar2000 to use this when displaying album art?

Without this, the color for some album art looks very off, as compared to viewing art in programs that support color management (e.g. Photoshop, Chrome, ...).

about 5 years later.... I have the exact same question as @Rrolack .  Is there any way to make Foobar display/render album artwork according to the current Windows system ICC profile?

For those who are unfamiliar, users with wide gamut monitors rely on programs respecting/leveraging the system ICS profile otherwise colors overall are not rendered correctly (they are often waaaaay over saturated).  For text in Foobar, it doesn't really matter, but for album artwork, it definitely matters.


Re: Can foobar2000 display album art using your ICC profile?

Reply #2
Not sure what foobar itself does but could you try the album art sample included with Spider Monkey Panel or JScript Panel. It's a direct replacement for the default UI (or CUI artwork pane) and use the same preferences so you shouldn't need to configure anything.

When creating a new Gdiplus Bitmap, they set the useEmbeddedColorManagement option to true.

https://docs.microsoft.com/en-gb/windows/win32/api/gdiplusheaders/nf-gdiplusheaders-bitmap-bitmap(inistream_inbool)

I have no idea if it's applied correctly or not!

https://github.com/marc2k3/foo_jscript_panel/releases or
https://github.com/TheQwertiest/foo_spider_monkey_panel/releases

edit: seems like the forum is breaking the microsoft link by not including the ) on the end.


Re: Can foobar2000 display album art using your ICC profile?

Reply #3
@snotlicker interesting!  I was able to try both components, using their default Album art sample scripts. As default, they both render album art same as the Foobar album art viewer -- not referencing system ICC profile. I wasn't quite sure how to follow the Microsoft doc page.... are you suggesting SpiderMonkeyPanel might need to be re-compiled with useEmbeddedColorManagement set to true?

I am curious if you are or anyone else would know how to try and "force" either of these scripts to respect/abide the system ICC profile.



Re: Can foobar2000 display album art using your ICC profile?

Reply #4
I knew the source code for JScript Panel was set to TRUE already. See here...

https://github.com/marc2k3/foo_jscript_panel/blob/develop/src/Helpers/Image.h#L74

I guess this option doesn't mean what I thought it meant.

Re: Can foobar2000 display album art using your ICC profile?

Reply #5
@TheQwertiest any chance you could read from the top and provide any suggestions here?

Re: Can foobar2000 display album art using your ICC profile?

Reply #6
@jaynyc , I have nearly no idea how ICC works, so you'll have to bear with me: AFAIK ICC is usually applied system-wide, i.e. there is no reason to apply it on per-app basis (e.g. https://pcmonitors.info/articles/using-icc-profiles-in-windows). I've double-checked the code and it seems that ICC *is* applied when loading images (according to WinAPI docs mention above by marc). Which means that *if* ICC is applied system-wide, then this might lead to ICC applied twice, which will result in inaccurate colours.

Can you try using smth like FillSolidRect() and see if colours are ICC-corrected?

Re: Can foobar2000 display album art using your ICC profile?

Reply #7
Ok, I've fumbled around a bit and now have a bit more context: it seems there are two use-cases for ICC profiles:
1. System-wide for display correction.
2. Embedded in image for image specific correction.

SMP/JSP handle the `2.` case (I've verified it using the following image set: https://github.com/saucecontrol/PhotoSauce/issues/13#issuecomment-370656471). But they do not handle the `1.` case. It's probably possible to make SMP/JSP aware of system-wide ICC profile, but that would not be a great idea, since colours would be mismatched with the rest of fb2k (which seems to be not ICC aware).

Re: Can foobar2000 display album art using your ICC profile?

Reply #8
@TheQwertiest thank you so much for looking into this.    I think the general assumption is that album art files are default sRGB even if untagged.  To your point about the rest of Foobar not being ICC aware, that doesn't really matter much, because the only visual item where color&contract integrity is actually important is the album art.  That's why your Component has such potential here, because it could potentially render it's panel as ICC aware, regardless of what the rest of Fooabr is or isn't doing.

Re: Can foobar2000 display album art using your ICC profile?

Reply #9
@snotlicker interesting!  I was able to try both components, using their default Album art sample scripts. As default, they both render album art same as the Foobar album art viewer -- not referencing system ICC profile.
I don't know about the system profile part but they do use and render images according to file's colour profile. So if you could save system profile to files it should work.

Re: Can foobar2000 display album art using your ICC profile?

Reply #10
@TheQwertiest saying hi again almost a year later.  Any renewed thought or interest in making SpiderMonkeyPanel "system ICC" aware?   I am specifically referencing Use Case #1 from your post above.

Re: Can foobar2000 display album art using your ICC profile?

Reply #11
Use case #1 is handled by the system, not user applications.

Re: Can foobar2000 display album art using your ICC profile?

Reply #12
Use case #1 is handled by the system, not user applications.

@kode54 So the Windows system maintains an ICC/ICM profile, but it is incumbent upon the application to "use" the profile.   For example, photo viewers (like XNViewMP) and browsers (Firefox, Chrome) are specifically coded to recognize and "use" the system ICC/ICM profile.  However, applications like Windows Photo Viewer and Microsoft Word (believe it or not) do not recognize and use the system ICC/ICM profile.  Foobar does not use the system ICC/ICM profile.    If Foobar was updated to recognize/use the system ICC/ICM profile, then album art would render correctly on wide gamut monitors.  Right now, album art does not render correctly on wide gamut monitors because Foobar does not use the system ICC/ICM profile.   Read what @Rrolack wrote 6 years to start this thread.  It's the same situation.

Re: Can foobar2000 display album art using your ICC profile?

Reply #13
Not exactly. It can baseline work with any program that decodes images to sRGB, as it will color correct anything assuming sRGB to the monitor's profile.

Note, I have no experience with wide gamut monitors. I can't afford such things.

Re: Can foobar2000 display album art using your ICC profile?

Reply #14
Bringing this full circle, the issue exists for users with wide gamut monitors.   If you have a perfect (or close to) 100% sRGB display panel, there is no issue.  I am curious which is an easier solve for the issue:  changing Foobar itself or asking a component dev (like SpiderMonkeyPanel) ?

Re: Can foobar2000 display album art using your ICC profile?

Reply #15
And this is why I wished that apps would need to specially ask for permission for their 0-255 mapping to be P3 instead of sRGB, so legacy apps don't get wide gamut at all.

Re: Can foobar2000 display album art using your ICC profile?

Reply #16
bringing this back up 9 months later.... is there any interest in Foobar supporting wide gamut displays and rendering album art accurately?

Re: Can foobar2000 display album art using your ICC profile?

Reply #17
Sounds like the developer needs to buy a wide gamut display to actually see the issue.

I'd love to know if there's a similar issue with Cog on macOS, where I simply use a stock image control to display images using system supported image readers that turn everything into an NSImage. Except for AVIF, which I read myself, and would need to change to do 16 bit per channel reading of images and hope that the system NSImage supports P3 color 16 bit per channel RGB. But I don't even know if it's entirely worth it yet, as I don't know that the system's own NSImage readers are doing the right thing, either.

And I can't really do anything to help, either, as I don't own any P3 displays. sRGB 4K display cost me $250, as a gift. P3 4K display from the same vendor would cost upwards of $1000, bare minimum.