Output Colour Profile has opposite effect to desired

Magick.NET is an object-oriented C# interface to ImageMagick. Use this forum to discuss, make suggestions about, or report bugs concerning Magick.NET
Post Reply
davidbrunning
Posts: 3
Joined: 2018-05-25T11:46:15-07:00
Authentication code: 1152

Output Colour Profile has opposite effect to desired

Post by davidbrunning »

First, apologies if this question seems obvious.

I'm working with some Noritsu silver halide printers and I'm getting really dull images coming out, nothing like we are expecting.

I'm using Image Magick (via Magick .NET) get the images ready to go into the printer, and an output colour profile which was generated from test pages that went through the printer. When I apply the colour profile to the images, they are dulled in the same way that the printer dulls them, which makes me wonder about how I'm applying the profile.

Is there a way to apply the inverse of the colour profile so that the images are brightened before they are printed? Is that normal? To apply the colour profile I'm using:

image.RenderingIntent = RenderingIntent.Perceptual;
image.AddProfile(new ColorProfile(colourProfile), true);
image.ColorSpace = ColorSpace.sRGB;

Thanks
snibgo
Posts: 12159
Joined: 2010-01-23T23:01:33-07:00
Authentication code: 1151
Location: England, UK

Re: Output Colour Profile has opposite effect to desired

Post by snibgo »

1. Printers usually have a printer driver, which is software that you send the image to. The driver expects its input to be a certain colorspace, or to have an embedded profile, or whatever. It then tweaks the image as required and sends it to the printer.

2. You say "When I apply the colour profile to the images..." but does that mean you are assigning the profile, or converting to the profile? I don't know Magick.NET, but I guess you are assigning the profile, when you should be converting.
snibgo's IM pages: im.snibgo.com
davidbrunning
Posts: 3
Joined: 2018-05-25T11:46:15-07:00
Authentication code: 1152

Re: Output Colour Profile has opposite effect to desired

Post by davidbrunning »

These are large scale wet process printers which use a hot folder system. I post the images with a command.nhf file to a hot folder and the hot folder system picks them up and processes them. I don't have access to the drivers, but the printer engineers tell me that I can't change the profile in any meaningful way that is going to help, I need to over correct the images before I submit them.

In terms of Magick.NET, as I understand it, calling .AddProfile on an object does the colour conversion. I first remove any other profiles that are on the images, then add the new one.

There is an old system here, which I am replacing. When it submits images, they all incredibly bright, but that is done by an internal render process, and I don't know what it is applying. If I take one of those images, and apply the colour profile to it, the image looks like the printed output.
snibgo
Posts: 12159
Joined: 2010-01-23T23:01:33-07:00
Authentication code: 1151
Location: England, UK

Re: Output Colour Profile has opposite effect to desired

Post by snibgo »

davidbrunning wrote:I first remove any other profiles that are on the images ...
Why? A profile defines the colours that pixel numbers represent, so when you remove a profile, you (and ImageMagick, and your printer) no longer know what colour to make.

You have a profile for the printer, yes? What documentation came with it? What are you supposed to do with the profile?

I don't know your printer or what it needs, nor do I know Magick.NET. I suggest you do a series of experiments to find out what the printer needs, using the command line. When you have figured that out, translate the command into Magick.NET (if you really need to).
snibgo's IM pages: im.snibgo.com
davidbrunning
Posts: 3
Joined: 2018-05-25T11:46:15-07:00
Authentication code: 1152

Re: Output Colour Profile has opposite effect to desired

Post by davidbrunning »

You're right (of course). The way I was applying to colour profile was incorrect. I had tried leaving the colour profile in place and then assigning the new one, but that didn't work so I was just trying other stuff. In the end, your comments pushed me back down that route and the result is that my images now print as expected.

To convert the colour space properly, I had to transform the colour space from sRGB to the printer colour profile. In Magick.NET this is:

image.TransformColorSpace(ColorProfile.SRGB, new ColorProfile(colourProfile));

Thanks for your help.
Post Reply