Article: Functional image processing in D
Vladimir Panteleev
vladimir at thecybershadow.net
Fri Mar 21 06:54:24 PDT 2014
On Friday, 21 March 2014 at 12:27:57 UTC, Rikki Cattermole wrote:
> On Friday, 21 March 2014 at 11:04:58 UTC, Vladimir Panteleev
> wrote:
>> http://blog.thecybershadow.net/2014/03/21/functional-image-processing-in-d/
>>
>> Some highlights from a recent overhaul of the graphics package
>> from my D library. It makes use of a number of D-specific
>> language features, so I've tried to make the article
>> accessible to people new to D as well.
>
> Are you planning on adding a font rasterizer
Parsing vector font files is a big undertaking. I'd likely use a
text rendering library, such as FreeType. Hardcoding a small
bitmap font for ASCII only is also a possibility.
> and can it work at CTFE?
This program almost works:
string drawSmiley()
{
import std.range;
import std.math;
import ae.utils.graphics.draw;
import ae.utils.graphics.image;
auto smiley = Image!char(20, 20);
smiley.fill(' ');
smiley.fillCircle(10, 10, 10, '#');
smiley.fillCircle( 6, 6, 2, ' ');
smiley.fillCircle(14, 6, 2, ' ');
smiley.fillSector(10, 10, 6, 8, 0, PI, ' ');
return smiley.h.iota.map!(y =>
smiley.scanline(y)).join("\n").idup;
}
pragma(msg, drawSmiley);
"almost" because fillSector calls atan2, which doesn't work in
CTFE. :(
(And yeah, I totally did just declare an image with a colorspace
of "char".)
More information about the Digitalmars-d-announce
mailing list