From koffice-devel Thu Oct 23 23:52:48 2003 From: Patrick Julien Date: Thu, 23 Oct 2003 23:52:48 +0000 To: koffice-devel Subject: Re: KoColor && CMYK -> RGB X-MARC-Message: https://marc.info/?l=koffice-devel&m=106695328907594 On October 23, 2003 06:11 pm, Boudewijn Rempt wrote: > On Thursday 23 October 2003 23:09, Boudewijn Rempt wrote: > > Well, my CMYK strategy works now without crashes -- and it gets called, > > too, so that's nice. But I fear that there might be a bug in KoColor. > > Since KoColor isn't used anywhere but on in Krita, but is still in the > > koffice lib, I crossposted. Is there still anyone maintaining this > > useful class? No, not really, this library was maintained by the Kontour people. > > > > Anyway, given a nice, white RGB color (255, 255, 255), this function > > gives (255, 255, 255, 255) -- which is as black as can be. > > > > void KoColor::RGBtoCMYK(int R, int G, int B, int *C, int *M, int *Y, int > > *K) { > > int min = (R < G) ? R : G; > > *K = (min < B) ? min : B; > > > > *C = 255 - (R - *K); > > *M = 255 - (G - *K); > > *Y = 255 - (B - *K); > > } > The error here is actually the extra parentheses, that and the test for K was inverted . This would actually be void KoColor::RGBtoCMYK(int R, int G, int B, int *C, int *M, int *Y, int *K) { int max = (R > G) ? R : G; *K = 255 - (max > B) ? max : B; *C = 255 - R - *K; *M = 255 - G - *K; *Y = 255 - B - *K; } > I've changed this to > > void KoColor::RGBtoCMYK(int R, int G, int B, int *C, int *M, int *Y, int > *K) { > *C = 255 - R; > *M = 255 - G; > *Y = 255 - B; > > int min = (*C < *M) ? *C : *M; > *K = (min < *Y) ? min : *Y; > > *C = *C - *K; > *M = *M - *K; > *Y = *Y - *K; > } > > In the end, following Foley etc., who I should have consulted first, > instead of googling. The difference with the previous being that I first > convert to CMY, instead of subtracting the K from RG and B. > > Anyway, since this is a real, life koffice lib -- can I check this in? It > seems to produce the right results in Krita. Both corrections are, well, correct, so I don't why not since the old code isn't doing CMYK. _______________________________________________ koffice-devel mailing list koffice-devel@mail.kde.org http://mail.kde.org/mailman/listinfo/koffice-devel