Next: Using Markers, Up: Image Annotation [Contents][Index]
To place text into the image, use the following routine
int flimage_add_text(FL_IMAGE *im, const char *str, int len, int fstyle, int fsize, unsigned tcolor, unsigned bcolor, int nobk, double tx, double ty, int rotation);
where fstyle
and fsize
are the same as the label font
style and size defined earlier in Section 3.11.3. tcolor
and
bcolor
specify the colors to use for the text str
and
the background if the nobk
argument is false. If nobk
is
true the text is drawn without a background. tx
and ty
specify the location of the text relative to the image origin. The
location specified is the lower-right corner of the text. Note that
the location specified can be in some physical space other than pixel
space. For example, if the pixel-pixel distance represents 10 miles on
a map, you’d like to be able to specify the text location in miles
rather than pixels. The location is converted into pixel space using
the following code
tx_pixel = im->xdist_scale * tx + im->xdist_offset; ty_pixel = im->ydist_scale * ty + im->ydist_offset;
By default, the offsets im->xdist_offset
and
im->yxdist_offset
are initialized to 0 and the scales
im->xdist_scale
and im->ydist_scale
to 1.
The function returns the current number of strings for the image. The
interpretation of text used also used elsewhere applies, i.e., if
str
starts with character @
a symbol is drawn.
There is another function, maybe more convenient depending on the application, that you can use
int flimage_add_text_struct(FL_IMAGE *im, const FLIMAGE_TEXT *text);
With this function instead of passing all the parameters individual;y
you pass a FLIMAGE_TEXT
structure to the function. The
structure has the following fields:
str
The string to append to the image.
len
Length of the string in bytes.
x, y
A location relative to the image origin, given in pixels (no conversion from other coordinate systems is done)
align
Specifies the alignment of the string relative to the give location.
style, size
The font style and size to use.
color
The text color
bcolor
The background color
nobk
If true indicates that no background is to be drawn.
angle
Angle (in thenth of a degree) the text is to be rotated from the default horizontal orientation. Currently only PostScript output handles this correctly.
To delete the all texts you added to an image, use
void flimage_delete_all_text(FL_IMAGE *im);
You also can suppress the display of annotation text without deleting
it. To do this, simply set im->dont_display_text
to true.
Next: Using Markers, Up: Image Annotation [Contents][Index]