[Openicc] CUPS Color Management under Linux gets into distros
Cyrille Berger Skott
cberger at cberger.net
Wed Mar 2 02:41:11 PST 2011
On Monday 28 February 2011, Hal V. Engel wrote:
> The Qt PDF printing flow actually looks worse than I had originally
> thought. The app opens a logical paint (QPrinter) device that it paints
> the output to and it has no idea if that device is using a PDF or some
> other format for the spool file (this is set by the user in the
> QPrinterDialog) and the paint engine hides this detail from the app. doing
> the painting.
Actually QPainter::paintEngine()->type() == QPaintEngine::PDF would allow to
know that. But that is irrelevant...
> [...]
> Or QImage needs to be extended to support this meta data and higher bit
> depths.
This seems to be the way to go for me. And in Krita we would skip our
conversion step when creating the QImage for display/printing. And just set
the correct profile on the QImage.
Then the PDF engine can set the correct information using the meta data, and
other engines (if they don't support a proper color manangement workflow)
should probably do a conversion to sRgb.
> I suspect that the Qt folks would
> argue that you can open most image formats as a QImage so is unnecessary
> to allow painting in native file formats but this ignores that fact that
> the process of opening a tiff or jpeg image as a QImage discards almost
> all of the meta data that is part of that image including ICC profiles.
Well, if QImage countains the meta data, then the png/jpeg/tiff loader can be
fixed to load the meta data, and the problem is then solved.
> In addition it flattens the image to a max of 8 bits/channel.
That can be solved as well, with little effort, by adding QImage::Format_RGB64
and QImage::Format_RGBA64 and implementing a few conversion function inside
QImage. I suspect the biggest problem is that by-default, Qt would still have
to do the flattening at a max of 8 bits/channel, for compatibility reason with
existing applications.
--
Cyrille Berger Skott
More information about the openicc
mailing list