GIF Rasterizer Feature Representation
In addition to the generic FME feature attributes that FME Workbench adds to all features (see About Feature Type Attributes), this format also adds format-specific attributes (Format Attributes).
FME considers the FME feature type of a GIF-destined feature to be its color. The feature type must match a color name defined in the Feature Type format attributes.
Attribute Name | Contents |
---|---|
gif_type or png_type |
This will always be gif_raster or png_raster. |
gif_raster_filename or png_raster_filename
|
This is a string that specifies a destination filename without the extension. By default, it is used as the basename of the destination file or files. See Rasters for more details. |
Special FME feature attributes direct the writer as it renders the feature into the image. The most important of these is the gif_type attribute because it controls the overall interpretation of the feature. The acceptable values for gif_type are gif_text, gif_line, gif_polygon, and gif_point. The parameters specified to each of these are described below.
Polygons
gif_type: gif_polygon
The GIF writer renders polygonal features first, so as not to obscure any linear, text, or point features. Three-dimensional features are ordered by elevation, so that higher elevations overlay lower elevations. Two-dimensional areas are treated as having an elevation of 0.
The boundary is rendered in the same manner as a gif_line. It is drawn in the color named by the polygonal feature’s feature type. The gif_line attributes – described in the next subsection – are all interpreted when a gif_polygon is output.
In addition to rendering the boundary of a polygon, the GIF writer also fills the polygon with either a solid color or a pattern. The feature attributes, described in the following table, control the filling of a polygonal feature. If neither attribute is specified, the polygon is not filled.
If an image map is being produced, the gif_href and gif_alt attributes are used for the entry for the polygon in the image map. If no image map is being created, then these attributes are ignored.
The GIF writer correctly renders donut polygons by drawing the hole boundaries in the same color as the outer boundary and not filling them.
Attribute Name | Contents |
---|---|
gif_fill_color |
This attribute holds the name of the color used to fill the polygon. This attribute must not be present if the gif_fill_image is set. Range: Any defined color name Optional: Yes |
gif_fill_image |
The GIF writer can fill the polygon using an arbitrary pattern as a brush. The value of this attribute is the name of a GIF file to be used as the brush. If the brush image contains any transparent pixels, they will be interpreted correctly and will not obscure any image data already present in the image. If the image is too large to fit into the polygon, it is clipped; and if it is too small, it will be tiled. This attribute must not be present if the gif_fill_color is set. Range: Any valid GIF file Optional: Yes |
gif_href |
This attribute contains a URL that will be jumped to when the image is displayed in a web page in conjunction with the image map. This is only used when an image map is being produced. While any URL may be jumped to, a typical use is to have a URL which will display the attributes of the polygon. For example: javascript:alert('Significant Area\nNAME: Poe’) The \n embedded in such a java script URL causes a carriage return to be output in the dialog box that is displayed. Range: Any valid URL Optional: Yes |
gif_alt |
This attribute contains a string which will be output to the image map produced with the gif as the alt string for the polygon. Some browsers will display the alt string as a tool tip when the mouse is over the polygon in the image. However, many browsers do not seem to implement this documented functionality of HTML. Range: Any string Optional: Yes |
Lines
gif_type: gif_line
The GIF writer renders linear features into the image after all polygons have been drawn. Linear features must have at least two points.
Three-dimensional features are ordered by elevation, so that higher elevations overlay lower elevations. Two-dimensional lines are treated as having an elevation of 0.
The GIF writer supports a variety of line rendering options, controlled by the feature’s attributes. The color for the line is taken from the feature’s feature type. By default, if none of the attributes listed below are specified, a single pixel-width solid line is drawn.
Attribute Name | Contents |
---|---|
gif_brush_width |
By default, the line drawn is one pixel wide. If a thicker line is desired, this attribute is used to set the width. This attribute must not be present if the gif_brush_image is set. Range: Integer > 1 Optional: Yes |
gif_brush_image |
The GIF writer draws the line using an arbitrary pattern as a brush. The value of this attribute is the name of a GIF file to be used as the brush. If the brush image contains any transparent pixels, they are correctly interpreted and will not obscure any image data already present in the image. This attribute must not be present if the gif_brush_width is set. Range: Any valid GIF file Optional: Yes |
gif_dash_on |
The number of pixels to be used as the "on" part of the dashed line used to draw the feature. If gif_brush_width or gif_brush_image are specified, then this value is multiplied by the size of the brush to determine the number of pixels. Range: Integer > 0 Optional: Yes |
gif_dash_off |
The number of pixels to be used as the "off" part of the dashed line used to draw the feature. If gif_brush_width or gif_brush_image have been specified, this value is multiplied by the size of the brush to determine the number of pixels. Range: Integer > 0 Optional: Yes |
gif_href |
This attribute contains a URL that will be jumped to when the image is displayed in a web page in conjunction with the image map. This is only used when an image map is being produced. While any URL may be jumped to, a typical use is to have a URL that will display the attributes of the polygon. For example: javascript:alert('River\nNAME: Fraser’) The \n embedded in such a JavaScript URL causes a carriage return to be output in the dialog box that is displayed. Range: Any valid URL Optional: Yes |
gif_alt |
This attribute contains a string which will be output to the image map produced with the gif as the alt string for the line. Some browsers will display the alt string as a tootip when the mouse is over the polygon in the image. However, many browsers do not seem to implement this documented functionality of HTML. Range: Any string Optional: Yes |
Points
gif_type: gif_point
The GIF writer renders point features into the image after all polygons and lines have been drawn. Point features must not have more than one coordinate.
Three-dimensional features are ordered by elevation, so that higher elevations overlay lower elevations. Two-dimensional points are treated as having an elevation of 0.
By default, a point is rendered as a single pixel in the color named by the feature type of the point feature. The attributes below may be set to alter this rendering.
Attribute Name | Contents |
---|---|
gif_dot_size |
By default, the point drawn is drawn as a one pixel dot. If a thicker dot is desired, this attribute is used to set the width and height of a square box drawn at the point’s location. This attribute must not be present if the gif_symbol_image is set. Range: Integer > 1 Optional: Yes |
gif_symbol_image |
The GIF writer can draw the point using an arbitrary symbol. The value of this attribute is the name of a GIF file to be used as the symbol. If the symbol contains any transparent pixels, they will be interpreted correctly and will not obscure any image data already present in the image. This attribute must not be present if the gif_dot_size is set. Range: Any valid GIF file Optional: Yes |
gif_symbol_scale_x |
When the gif_symbol_image is specified, this parameter is used to scale the image in the x direction. A value of 1 leaves the symbol unchanged. A value between zero and one shrinks the image, while a value greater than one increases the image. Range: Integer > 0 Default: 1 Optional: Yes (allowed only when gif_symbol_image is set) |
gif_symbol_scale_y |
When the gif_symbol_image is specified, this parameter is used to scale the image in the y direction. Range: Integer > 0 Default: 1 Optional: Yes (only allowed when gif_symbol_image is set) |
gif_href |
This attribute contains a URL that will be jumped to when the image is displayed in a web page in conjunction with the image map. This is only used when an image map is being produced. While any URL may be jumped to, a typical use is to have a URL which will display the attributes of the polygon. An example would be: javascript:alert('Oil Well\nNAME: Leduc #2’) The \n embedded in such a JavaScript URL causes a carriage return to be output in the dialog box that is displayed. Range: Any valid URL Optional: Yes |
gif_alt |
This attribute contains a string which will be output to the image map produced with the gif as the alt string for the point. Some browsers will display the alt string as a tool tip when the mouse is over the polygon in the image. However, many browsers do not seem to implement this documented functionality of HTML. Range: Any string Optional: Yes |
Text
gif_type: gif_text
The GIF writer renders text features into the image after all polygons, points, and lines have been drawn.
The font for a text feature can be selected from one of five predefined fonts, or may be one of the Hershey fonts supplied in the HERSHEY subfolder of the FME distribution. The text cannot be rotated or precisely sized using the predefined fonts, but can be both rotated and resized when using the Hershey fonts.
Text features must have a single point as their coordinate. With the predefined fonts, the text string is output centered around this point. If the text string would extend past the bounds of the image, it is clipped. Use of Hershey fonts allows more flexible justification of the text.
GIF text features have the following attributes:
Attribute Name | Contents |
---|---|
gif_text_string |
The text string to be drawn into the image. It may contain blanks and there is no limit on its length. This attribute must be present for all gif_text features. |
gif_text_height |
The height of the text, measured in ground units. This is applicable only to the Hershey fonts; the gif_font_* fonts have fixed heights. Range: Floating point > 0 Default: 10 Optional: Yes (used only when gif_font defines one of the Hershey fonts) |
gif_text_rotation |
The amount of rotation to be applied to the text, measured in degrees counter-clockwise from the horizontal. Range: Floating point >= 0 Default: 0 (horizontal) Optional: Yes (used only when gif_font defines one of the Hershey fonts) |
gif_font |
The font to be used to render the text. Range: There are five built-in fonts that may be used:
In addition to the built-in fonts, there are several Hershey vector fonts distributed with FME. These are defined by the *.hmp files in the hershey subfolder of the FME installation folder. To use one of these fonts, the name of the file without the .hmp suffix is given as a font name. The currently available Hershey fonts are:
|
gif_text_vertical_ |
Specifies the vertical position of the text’s location point relative to the displayed text. Range: Literal text string: gif_top, gif_center, or gif_bottom Default:gif_bottom Optional: Yes (used only when gif_font defines one of the Hershey fonts) |
gif_text_horizontal_justification |
Specifies the horizontal position of the text’s location point relative to the displayed text. Range: Literal text string: gif_left, gif_center, or gif_right Default:gif_left Optional: Yes (used only when gif_font defines one of the Hershey fonts) |
gif_text_boldness |
Specifies the width of the brush used to draw the text, measured in pixels. Range: Integer > 0 Default:1 Optional: Yes (used only when gif_font defines one of the Hershey fonts) |
The hershey subfolder of the FME installation folder contains the Hershey font data from Bill Thoen’s freeware Hershey font set.
Basic Glyph (symbol) data: hersh.oc1 - numbers 1 to 1199 hersh.oc2 - numbers 1200 to 2499 hersh.oc3 - numbers 2500 to 3199 hersh.oc4 - numbers 3200 to 3999 These four files contain approximately 19 different fonts in the A-Z alphabet plus greek and cyrillic, along with hundreds of special symbols, described generically below. Fonts: Roman: Plain, Simplex, Duplex, Complex Small, Complex, Triplex Italic: Complex Small, Complex, Triplex Script: Simplex, Complex Gothic: German, English, Italian Greek: Plain, Simplex, Complex Small, Complex Cyrillic: Complex Symbols: Mathematical (227-229,232,727-779,732,737-740,1227-1270,2227-2270, 1294-1412,2294-2295,2401-2412) Daggers (for footnotes, etc.) (1276-1279, 2276-2279) Astronomical (1281-1293,2281-2293) Astrological (2301-2312) Musical (2317-2382) Typesetting (ffl,fl,fi sorts of things) (miscellaneous places) Miscellaneous (mostly in 741-909, but also elsewhere): - Playing card suits - Meteorology - Graphics (lines, curves) - Electrical - Geometric (shapes) - Cartographic - Naval - Agricultural - Highways - Etc... ASCII sequence translation files: The Hershey glyphs, while in a particular order, are not in an ASCII sequence. I have provided translation files that give the sequence of glyph numbers that will most closely approximate the ASCII printing sequence (from space through ~, with the degree circle tacked on at the end) for each of the above fonts: File names are made up of fffffftt.hmp, where ffffff is the font style, one of: roman Roman greek Greek italic Italic script Script cyril Cyrillic (some characters not placed in the ASCII sequence) gothgr Gothic German gothgb Gothic English gothit Gothic Italian and tt is the font type, one of: p Plain (very small, no lower case) s Simplex (plain, normal size, no serifs) d Duplex (normal size, no serifs, doubled lines) c Complex (normal size, serifs, doubled lines) t Triplex (normal size, serifs, tripled lines) cs Complex Small (Complex, smaller than normal size) The three sizes are coded with particular base line (bottom of a capital letter) and cap line (top of a capital letter) values for 'y': Size Base Line Cap Line Very Small -5 +4 Small -6 +7 Normal -9 +12 (Note: some glyphs in the 'Very Small' fonts are actually 'Small') The top line and bottom line, which are normally used to define vertical spacing, are not given. The left line and right line, which are used to define horizontal spacing, are provided with each character in the database. |