Re: Converting to 8 bit black and white
Ben <[email protected]>
| Newsgroups | gmane.comp.lib.cairo |
|---|---|
| Message-ID | <[email protected]> |
May be too late... On Tue, 2012-09-18 at 13:36 -0500, Timothy Bolton wrote: > I have another question. How do you convert a surface from color to 8 > bit black and white? I've been searching and I cannot seem to find a > way to convert a surface to black and white. > > I'm pulling in images, and I need them to be black and white (not gray > scale) for the rendering. If you use CAIRO_OPERATOR_HSL_COLOR with a grey source you get a grey-scale image. You can then threshold it by adding and burning with the darkest non-black source you can construct: cairo_t *cp = cairo_create(surf); cairo_set_source_rgb(cp, t, t, t); cairo_set_operator(cp, CAIRO_OPERATOR_HSL_COLOR); cairo_paint(cp); cairo_set_operator(cp, CAIRO_OPERATOR_ADD); cairo_paint(cp); cairo_set_source_rgb(cp, DBL_MIN, DBL_MIN, DBL_MIN); cairo_set_operator(cp, CAIRO_OPERATOR_COLOR_BURN); cairo_paint(cp); t is the level below which the result will be black. There may be a neater way to do this, but this method was the first that came to mind (I tend to stop once I have any solution). -- Ben -- cairo mailing list [email protected] http://lists.cairographics.org/mailman/listinfo/cairo