Next: , Up: Image Annotation   [Contents][Index]


37.7.9.1 Using Text Strings

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: , Up: Image Annotation   [Contents][Index]