home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD2.iso / Misc / PFONTM-A.DMS / in.adf / Chapter05 < prev    next >
Encoding:
Text File  |  1995-11-12  |  16.2 KB  |  387 lines

  1.  
  2.  "Personal Fonts Maker -  5. PFM: The Brush Menu"
  3.  
  4.  5. PFM: The Brush Menu
  5.    5.1  Load Brush
  6.    5.2  Save Brush
  7.    5.3  Horizontal Flip
  8.    5.4  Vertical Flip
  9.    5.5  Rotate 90 Degrees
  10.    5.6  Italicize
  11.    5.7  Reverse
  12.    5.8  Resize
  13.         5.8.1  Stretch
  14.         5.8.2  Halve
  15.         5.8.3  Halve Horizontal
  16.         5.8.4  Halve Vertical
  17.         5.8.5  Double
  18.         5.8.6  Double Horizontal
  19.         5.8.7  Double Vertical
  20.    5.9  Handle
  21.         5.9.1  Upper Left
  22.         5.9.2  Upper Right
  23.         5.9.3  Centre
  24.         5.9.4  Lower Left
  25.         5.9.5  Lower Right
  26.  
  27.  "Personal Fonts Maker -  5. PFM: The Brush Menu"
  28.  
  29. 5.         PFM: The Brush Menu
  30.  
  31.    Sections 3.17 ("The 'Pencil/Brush' Gadget") and 3.18 ("Define Brush")
  32. introduce some general concepts about the brush and how it can be used.
  33. This chapter explains in detail all the functions which can be applied to
  34. the brush to load it, save it, transform it or change the position of the
  35. handle.
  36.  
  37.    A brush must be defined (section 3.18 "Define Brush") before the
  38. functions explained in this chapter can be used. Only "Load Brush" and
  39. "Handle" will work even if the brush mode is not active. The other menu
  40. items are automatically disabled (section 1.9.8 "Menus") by the program
  41. when they cannot be used.
  42.  
  43.  
  44. 5.1        Load Brush
  45.  
  46.    Once a brush has been defined, it can be saved to a file, loaded and
  47. re-used again. The brush data is stored in the IFF ILBM (from "Interchange
  48. File Format - InterLeaved BitMap") graphical format. This is a standard
  49. shared by most Amiga software working with bit-map graphics.
  50.  
  51.    This function can be used to load a brush file previously stored by the
  52. Personal Fonts Maker or another program using the IFF ILBM format.
  53.  
  54.    The standard file requester (section 3.23) allows the user to choose
  55. the file to be loaded. An error message is displayed if the file does not
  56. contain graphic data in the requested format.
  57.  
  58.    Both font environments share the same brush. If a brush has been
  59. defined, it will be cleared by the brush being loaded, even if this
  60. function is called from the font environment other than the environment in
  61. which the original brush was defined. A warning message is displayed
  62. before a brush which has not yet been saved is cleared by the brush being
  63. loaded.
  64.  
  65.    If the selected file contains more than one image, only the last image
  66. is loaded. The IFF ILBM format does not make any distinctions between
  67. brushes and other types of images, like full screens. The Personal Fonts
  68. Maker will load any of these, as long as the image is not too large. The
  69. program can load pictures as big as 255 by 255 dots. If the image is wider
  70. and/or taller than 255 dots, an error message is displayed.
  71.  
  72.    The Personal Fonts Maker also reads some non-graphical data in the IFF
  73. file. In particular, the program supports the "BMHD" (from "BitMap
  74. HeaDer"), "BODY" and "GRAB" IFF chunks. The program can deal with bitmap
  75. masking, multiple-colour to two-colour conversion information and brush
  76. handle position data. More information on the IFF format and details on
  77. the IFF chunks mentioned above can be found in the official Commodore "'EA
  78. IFF 85' Standard for Interchange Format Files" documentation.
  79.  
  80.    If the Personal Fonts Maker cannot find and process the necessary
  81. instructions in the file on how to convert a multiple-colour image into an
  82. on/off dot pattern, the default "OR" conversion mode is applied. This
  83. means that for each position of the source image where there is a "1" in
  84. one or more bitplanes, the resulting brush bitmap will contain a coloured
  85. ("black", or "On") dot.
  86.  
  87.    One possible application of this function is the data exchange with
  88. programs connected to external hardware devices. In particular, fonts
  89. which are available on paper can be read by a scanner and converted into
  90. IFF pictures by the software. The resulting characters could then be
  91. loaded into the Personal Fonts Maker's memory with this function. Most
  92. programs which are bundled with scanning devices have a so-called "Line
  93. Art" option. This mode can be activated to produce better looking fonts.
  94.  
  95.  
  96. 5.2        Save Brush
  97.  
  98.    This function saves the current brush to the specified file. The
  99. documentation of the standard file requester (section 3.23), overwrite
  100. warning message (section 7.11.4), Workbench icon (section 7.8), problems
  101. with peripheral storage units (section 14.1) and brush data formats
  102. (sections 2.4 and 5.1) is valid for this function.
  103.  
  104.    The program creates an IFF file containing the "BMHD" (from "BitMap
  105. HeaDer"), "CMAP" (from "Colour MAP"), "GRAB" and "BODY" IFF chunks. The
  106. Commodore documentation contains a detailed technical description of the
  107. IFF format and the chunks mentioned here.
  108.  
  109.    To the non-technical user, all this means that the brush is saved in
  110. such a way that it can be loaded from all programs handling the IFF ILBM
  111. format. The file contains information on the brush image and the position
  112. of the handle (section 5.9). When the Personal Fonts Maker loads the brush
  113. again, both the image and the brush handle associated with the brush will
  114. be used.
  115.  
  116.  
  117. 5.3        Horizontal Flip
  118.  
  119.    The same flip functions already described in section 3.20, which modify
  120. the content of the character editing box, also exist for the brush.
  121.  
  122.    This function transforms the image contained in the brush into its
  123. "mirror" image. The columns of dots, from the left to the right, which
  124. originally made up the brush image, are re-arranged from the right to the
  125. left, in the same sequence.
  126.  
  127.  
  128. 5.4        Vertical Flip
  129.  
  130.    This function, like "Horizontal Flip", modifies the brush image. The
  131. brush is turned upside-down each time the function is selected.
  132.  
  133.    The effect of this function can be undone by repeating the function an
  134. even number of times on the same brush. This is also valid for "Horizontal
  135. Flip".
  136.  
  137.  
  138. 5.5        Rotate 90 Degrees
  139.  
  140.    This function rotates the brush by 90 degrees clockwise. The horizontal
  141. and vertical dimensions of the brush are reversed. If the brush is square
  142. (i.e. if it is as wide as it is tall, in dots) the dimensions do not
  143. change.
  144.  
  145.    The brush handle remains in the same position. If the function is
  146. executed four (or a multiple of four) times on the same brush, the
  147. resulting brush will be identical to the original brush.
  148.  
  149.  
  150. 5.6        Italicize
  151.  
  152.    This function is generally used to produce an italic version of a
  153. normal text character. Sections 2.6.13 ("The ITAF Parameter") and 7.4
  154. ("Italic Factor") explain how to set the level of "italicness" of the
  155. modified brush.
  156.  
  157.    When this function is executed, the image in the brush is slanted to
  158. the right. The bottom line of the brush always remains in the same
  159. position. The ITAF ("Italic Factor") parameter determines the number of
  160. consecutive lines which have to be slanted to the right by one dot,
  161. relative to the lines below.
  162.  
  163.    If the value specified by ITAF is smaller than or equal to the height
  164. of the brush, the brush is not modified. In all other cases, the image
  165. resulting from this operation is larger than the original one. The brush
  166. width is increased accordingly, so that the image is not cut. The maximum
  167. width of the brush is 255 dots. The operation is not performed if the
  168. resulting brush would be slanted beyond this limit. The brush itself
  169. remains rectangular, i.e. its outline is not italicized.
  170.  
  171.    For example, if ITAF is equal to 2, and the brush is 6 dots tall, this
  172. function will shift the middle two rows of dots in the image to the right
  173. by one position, and the top two rows by two positions, in the same
  174. direction. The two bottom rows will remain on the same position. The total
  175. brush width will be increased by two dots, so that the resulting image
  176. (which has become larger) is not cut.
  177.  
  178.    This is one of the functions which are often recorded in a macro
  179. sequence and repeated on a group of characters, if not on the whole font,
  180. to produce a new font.
  181.  
  182.  
  183. 5.7        Reverse
  184.  
  185.    This function reverses each dot in the brush image. Coloured dots
  186. become transparent, and vice versa.
  187.  
  188.    After the function is executed an even (2, 4, 6 etc.) number of times,
  189. the resulting brush is the same as the original brush.
  190.  
  191.  
  192. 5.8        Resize
  193.  
  194.    The functions described in the following subsections modify the size of
  195. the brush. The image in the brush is stretched to the new size. The image
  196. is never cut. The maximum brush dimensions are 255 columns by 255 lines.
  197. The minimum size is one dot. The functions do nothing if the resulting
  198. image dimensions would exceed these limits.
  199.  
  200.  
  201. 5.8.1      Stretch
  202.  
  203.    This function stretches the brush to a size defined by the user. The
  204. new size is selected by using the mouse in the character editing box.
  205.  
  206.    When this function is selected, the "brush stretch" mode begins. When
  207. the mouse pointer is over the character editing box it changes its default
  208. image to the stretch symbol. This is to remind the user that the "brush
  209. stretch" mode is active.
  210.  
  211.    The user is requested to define a new size for the brush. To do so, a
  212. rectangle must be marked with the mouse, like the brush definition
  213. described in section 3.18.
  214.  
  215.    The brush stretch mode is active until the user selects one corner of
  216. the brush rectangle in the editing box, presses a mouse button, moves the
  217. mouse pointer to the opposite corner, and releases the mouse button. The
  218. operation can be cancelled by selecting the function again before the left
  219. mouse button is pressed in the character editing box. The brush stretch
  220. mode can also be interrupted by selecting the "Pencil/Brush" gadget
  221. (section 3.17) or the equivalent keyboard shortcuts, or by redefining a
  222. new brush.
  223.  
  224.    During the selection of the rectangle corresponding to the new size,
  225. the mouse pointer is used to select the dot-positions which mark the
  226. beginning and end of the rectangle. The two positions represent opposite
  227. corners of the rectangle. When the mouse pointer is over the character
  228. editing box and a mouse button is pressed (and held down), a green border
  229. is drawn around the dot under the pointer. This is to highlight the
  230. rectangle which is being selected. One corner of the rectangle will remain
  231. linked with the initial position. The other corner will follow the mouse
  232. pointer. When the mouse is moved (with the button still pressed), the
  233. rectangle will change shape accordingly. When the mouse button is finally
  234. released, the definition of the new brush size is complete. The program
  235. automatically stretches the brush image to the new size. The resulting
  236. brush will have the same height and width as the selected rectangle.
  237.  
  238.  
  239. 5.8.2      Halve
  240.  
  241.    This function halves the brush. The width and the height are halved,
  242. therefore the total brush surface is reduced to a quarter of the original
  243. brush.
  244.  
  245.    This function, like all functions which reduce an image down to a
  246. smaller dimension, causes a loss of data. Since the size of the dots which
  247. make up the image does not change, the number of dots is reduced. In the
  248. case of this function, the resulting image has about one quarter of the
  249. the dots in the original brush. Even for a human, it is not easy to decide
  250. which dots to "sacrifice".
  251.  
  252.    The Personal Fonts Maker reduces the image in a very mechanical way:
  253. every second row of dots from the top is "discarded". Then, the same is
  254. done for every second dot of the remaining rows. If the dimension which
  255. has to be halved contains an odd number of dots, the step rate is
  256. calculated in a way that the first and last dots (or columns, or rows) are
  257. not removed.
  258.  
  259.    A "Double" operation following "Halve" will usually not restore the
  260. original image, unless the first image consisted of "bricks" of 2 by 2
  261. dots of the same colour.
  262.  
  263.  
  264. 5.8.3      Halve Horizontal
  265.  
  266.    This function is a subset of "Halve". Only the width is halved, while
  267. the height is left unchanged.
  268.  
  269.    Every second column, starting from the left, is removed. The same
  270. exceptions already described for the "Halve" operation apply if the image
  271. consists of an odd number of columns.
  272.  
  273.  
  274. 5.8.4      Halve Vertical
  275.  
  276.    This function "flattens" the brush. The width is not varied, but the
  277. brush height is halved. This is done discarding every second row of dots
  278. from the top, unless the image consists of an odd number of rows, in which
  279. case the procedure is slightly more complex.
  280.  
  281.  
  282. 5.8.5      Double
  283.  
  284.    This function doubles both the horizontal and vertical brush
  285. dimensions. The resulting brush will have four times as many dots as the
  286. original brush. Like all other brush editing functions, this function is
  287. not executed if the resulting brush would exceed the maximum limit of 255
  288. dots, either horizontally or vertically.
  289.  
  290.    To double the brush image, the program first duplicates every row of
  291. dots, and then does the same with every column. The result is an image
  292. where the original dots appear as "bricks" of four dots (2 x 2) having the
  293. same colour as the original dot.
  294.  
  295.  
  296. 5.8.6      Double Horizontal
  297.  
  298.    This function is a subset of "Double". The brush is doubled only
  299. horizontally. While the width is doubled, the height remains the same.
  300.  
  301.  
  302. 5.8.7      Double Vertical
  303.  
  304.    This function is a subset of "Double". The brush is doubled only
  305. vertically. While the height is doubled, the width remains the same as
  306. that of the original brush.
  307.  
  308.  
  309. 5.9        Handle
  310.  
  311.    As described in section 3.17 ("The 'Pencil/Brush' Gadget"), an outline
  312. of the brush is associated with the mouse pointer over the character
  313. editing box when the brush mode is active. The outline indicates the area
  314. over which the brush image would be copied selecting a mouse button. If
  315. the brush is larger than the character editing box, or if part of the
  316. brush is not over the character editing box, only the part over the box is
  317. outlined.
  318.  
  319.    The brush outline is moved when the mouse pointer goes from one dot in
  320. the box over another dot. If the pointer is moved, but remains over the
  321. same dot, the outline is not moved.
  322.  
  323.    The Personal Fonts Maker allows the user to select which dot of the
  324. brush rectangle should be linked with the mouse pointer. One of five
  325. positions can be selected: the four corners, plus the centre of the brush.
  326. The following five subsections explain each possible setting in detail.
  327.  
  328.    Once the position of the handle has been selected, it can be changed
  329. only by choosing a different position, or loading a new brush. The "Flip"
  330. and "Rotate" functions do not flip or rotate the position of the brush
  331. handle. If the brush size is varied, the handle will be re-positioned so
  332. that it stays on the same relative position (a corner or the centre of the
  333. brush rectangle).
  334.  
  335.    The handle's position is stored with the image data of the brush when
  336. the brush is saved (section 5.2 "Save Brush"). When a brush is loaded, the
  337. original handle position associated with that brush is restored.
  338.  
  339.  
  340. 5.9.1      Upper Left
  341.  
  342.    This option places the brush handle on the top left corner of the
  343. brush. This means that the outline displayed over the character editing
  344. box will have its upper left dot under the mouse pointer.
  345.  
  346.    This brush position is the only which is guaranteed not to be moved by
  347. a brush resizing operation. Therefore, the brush handle will always be
  348. linked with the same dot. The top left corner is also the origin of the
  349. coordinate systems of different functions of the Personal Fonts Maker.
  350. These properties make this handle position particularly interesting when
  351. the size of the brush is unknown, as in macro operations, and relative
  352. brush movements are recorded (macros are explained in chapter 6).
  353.  
  354.  
  355. 5.9.2      Upper Right
  356.  
  357.    This option links the brush handle with the top right corner of the
  358. brush rectangle.
  359.  
  360.  
  361. 5.9.3      Centre
  362.  
  363.    The brush handle position is placed at the centre of the brush. If the
  364. centre falls between two dots, the lowest of two dots on the same column,
  365. or the rightmost of two horizontally adjacent dots is selected.
  366.  
  367.    This is the default initial brush handle position of the Personal Fonts
  368. Maker.
  369.  
  370.  
  371. 5.9.4      Lower Left
  372.  
  373.    This option places the handle at the lower left corner of the brush.
  374.  
  375.  
  376. 5.9.5      Lower Right
  377.  
  378.    This option links the brush handle with the lower right corner of the
  379. brush rectangle. As for all other positions except "Upper Left", a
  380. resizing of the brush implies that the position of the handle is also
  381. moved. In all positions except "Upper Left", the handle has to be moved
  382. over a different dot if the brush is resized, since three out of four
  383. edges of the brush are repositioned by a stretch operation. This is to
  384. ensure that the selected relative position (the lower right brush corner,
  385. in this case) always remains on the same corner.
  386.  
  387.