Sign up now! · Forgot password?
RSS/Atom feed Twitter

When writing a GIMP Plugin using Python, how can the Plugin determine and/or set the Colour Profile of any image that it operates on?

This discussion is connected to the gimp-developer-list.gnome.org mailing list which is provided by the GIMP developers and not related to gimpusers.com.

This is a read-only list on gimpusers.com so this discussion thread is read-only, too.

Craig Sanders via gimp-developer-list
2019-05-21 01:43:30 UTC (4 months ago)

When writing a GIMP Plugin using Python, how can the Plugin determine and/or set the Colour Profile of any image that it operates on?

Hello.

I am writing a GIMP Plugin using Python, and I would like to know how my Plugin can determine and/or set the Colour Profile of any image that it operates on.

The reason I ask this, is because I have some PNG files which have been generated from a PDF file by the ImageMagick convert utility. If I didn't know better, I would say that this ImageMagick utility is embedding the following Colour Profile into the images which it generates and stores in the resulting PNG files;

Artifex Software sRGB ICC Profile

I also have some PNG files which have been generated by the gnuplot utility. The images in these files have the following Colour Profile embedded within them;

sRGB

When I copy and paste a gnuplot generated image into one of the other images, the colours of the plots in the gnuplot generated image get altered upon pasting. If I didn't know better, I'd say this is due to the difference in the Colour Profiles, because if I load the PDF file straight into GIMP and then inspect it - it has the sRGB Colour Profile. Then, when I copy and paste the same gnuplot generated image into it, the colours of the plots are correct!

I don't know a great deal about this subject material, so please excuse me if I have asked something silly. I hope I have explained this clearly and have provided sufficient information. Any assistance on this matter would be greatly appreciated.

Thanks in advance and have a great day.

Ofnuts
2019-05-21 06:11:47 UTC (4 months ago)

When writing a GIMP Plugin using Python, how can the Plugin determine and/or set the Colour Profile of any image that it operates on?

On 5/21/19 3:43 AM, Craig Sanders via gimp-developer-list wrote:

Hello.

I am writing a GIMP Plugin using Python, and I would like to know how my Plugin can determine and/or set the Colour Profile of any image that it operates on.

The reason I ask this, is because I have some PNG files which have been generated from a PDF file by the ImageMagick convert utility. If I didn't know better, I would say that this ImageMagick utility is embedding the following Colour Profile into the images which it generates and stores in the resulting PNG files;

Artifex Software sRGB ICC Profile

I also have some PNG files which have been generated by the gnuplot utility. The images in these files have the following Colour Profile embedded within them;

sRGB

When I copy and paste a gnuplot generated image into one of the other images, the colours of the plots in the gnuplot generated image get altered upon pasting. If I didn't know better, I'd say this is due to the difference in the Colour Profiles, because if I load the PDF file straight into GIMP and then inspect it - it has the sRGB Colour Profile. Then, when I copy and paste the same gnuplot generated image into it, the colours of the plots are correct!

I don't know a great deal about this subject material, so please excuse me if I have asked something silly. I hope I have explained this clearly and have provided sufficient information. Any assistance on this matter would be greatly appreciated.

Another explanation is that the target PNG is color-indexed (if which case whatever you paste in it has its colors coerced into those of the colormap of the target).

Otherwise plenty of API to handle color profiles, in the Python console (Filters>Python-fu>Console) hit "Browse...", then enter "profile" in the search bar. If you use 2.10, best use the gimp_image* calls, the plug-in-icc* seems to be carried over from previous versions for compatibility.

Craig Sanders via gimp-developer-list
2019-05-21 06:22:02 UTC (4 months ago)

When writing a GIMP Plugin using Python, how can the Plugin determine and/or set the Colour Profile of any image that it operates on?

Hello.

After asking my question, I found the following procedures;

plug-in-icc-profile-info

and

plug-in-icc-profile-set

While searching through GIMPs Procedure Browser earlier, I didn't see these two procedures because I was searching for the keyword "space", i.e. Colour Space, instead of "profile", i.e. Colour Profile. I blame this on my playing around with ImageMagick too much before posting my question. The ImageMagick convert utility uses the command line argument;

-colorspace

and I think this term was just stuck in my head!

Sorry about that :(

On Tue, May 21, 2019 at 11:43 AM Craig Sanders wrote:

Hello.

I am writing a GIMP Plugin using Python, and I would like to know how my Plugin can determine and/or set the Colour Profile of any image that it operates on.

The reason I ask this, is because I have some PNG files which have been generated from a PDF file by the ImageMagick convert utility. If I didn't know better, I would say that this ImageMagick utility is embedding the following Colour Profile into the images which it generates and stores in the resulting PNG files;

Artifex Software sRGB ICC Profile

I also have some PNG files which have been generated by the gnuplot utility. The images in these files have the following Colour Profile embedded within them;

sRGB

When I copy and paste a gnuplot generated image into one of the other images, the colours of the plots in the gnuplot generated image get altered upon pasting. If I didn't know better, I'd say this is due to the difference in the Colour Profiles, because if I load the PDF file straight into GIMP and then inspect it - it has the sRGB Colour Profile. Then, when I copy and paste the same gnuplot generated image into it, the colours of the plots are correct!

I don't know a great deal about this subject material, so please excuse me if I have asked something silly. I hope I have explained this clearly and have provided sufficient information. Any assistance on this matter would be greatly appreciated.

Thanks in advance and have a great day.