Hi Arno,
On 09/16/2012 05:56 PM, Arno Trautmann wrote:
Paul Isambert wrote:
Arno Trautmann <[email protected]> a écrit:
Hi all,
again a rather unusual question: I'd like to get the black area of a
glyph. Why? To estimate it's greyness: For a “–” e.g. I want to get
something like “5%” (of the whole box surface), while a “m” would give
some “30%”, and a black box of course would result in 100%. Of course I
would also be happy with any absolute value like “0.1 square inches” or
whatever. So: Is there any chance to read such a value from inside
LuaTex? Or is this information not available?
LuaTeX doesn't even read the curves used to draw a glyph, so no way you
can get that information, as far as I can tell; you'll have to read
directly from the font file
I heard the rumor that LuaTeX can read several things from font files ;)
It can read several things, but it limits itself to metrics and
opentype information. Reading actual outlines would require quite
a lot of extra code that is never needed elsewhere.
So this sounds as if I had to learn how to read a font file and to
extract the curves in LuaTeX. Will be my task for the next few months …
(under the assumption that knowing the shape
of the glyph gives you its area, which I don't know, not being a
mathematician;
Being a physicist, I guess it should give the area. But it won't be easy …
perhaps by hit or miss?).
Perhaps approximations exist, but I've never heard of them.
Maybe someone else?
Assuming you have a bitmap image containing a glyph and imagemagick,
you can do:
$ convert <image> -colorspace gray -colors 1 -format "%c" histogram:info:
which outputs something like this:
32658582: (222,222,222) #DEDEDE rgb(222,222,222)
meaning that there are 32658582 pixels in the (virtual) conversion
output, with color rgb(222,222,222). Divide by 256 to the overall grayness.
Best wishes,
Taco