home *** CD-ROM | disk | FTP | other *** search
/ ARM Club 3 / TheARMClub_PDCD3.iso / hensa / graphics / imagen_2 / Release / !Imagen / !Help next >
Text File  |  1996-10-18  |  19KB  |  431 lines

  1.                               Imagen - Image Map Editor
  2.                               =========================
  3.                                 
  4. Version 1.44 (18 Oct 1996)
  5.  
  6. Introduction
  7. ------------
  8. If you do any work with web pages you will know the quite gorgeous things you
  9. can do with image maps. Not only are they pretty, they also allow a little
  10. bit more customisation than a simple HTML document can give you... Until now
  11. though, there has been no editor on the Acorn platform (well, that I know of
  12. anyhow), but - thanks to Kozzey - there now is !
  13.  
  14.  
  15. Usage
  16. -----
  17. Firstly you'll need to get a GIF or JPEG image to use. Design one using Draw,
  18. export it to Impression, grab it as a sprite in anti-aliased form (256
  19. colours) and then throw it at ChangeFSI to convert to JPEG, or WebGIF2 for a
  20. GIF. Well, you could do it other ways, but that's the way I do it....
  21. Alternatively you could just use a sprite, but most machines have never heard
  22. of Acorns, never mind RiscOS Sprites.
  23.  
  24. Dragging the graphic on to the Imagen icon will bring up the image viewer
  25. window (after a short delay whilst ChangeFSI converts it back to a sprite).
  26.  
  27. The window itself has a small toolbar, a point reference indicator, and the
  28. image itself.
  29.  
  30. The point reference indicator is simply an indication of where you are in the
  31. image. The name's a bit naff, but you get the idea, I'm sure :-)
  32.  
  33.  
  34. Toolbar
  35. -------
  36. The toolbar consists of six icons in two groups of three. The first group is
  37. for creation, whilst the second group is for editing the map. The buttons are :
  38.  
  39. 1. Create rectangle region
  40.    When active, you should DRAG across the image to select the region you
  41.    want to cover.
  42.  
  43. 2. Create circle region
  44.    When active, you should DRAG from the centre of the region to somewhere on
  45.    the perimeter of the circle.
  46.  
  47. 3. Create polygon area
  48.    When active, you should CLICK select for every point you want to add, and
  49.    adjust to finish the region. To abort creating a polygon after creating
  50.    only one point, you should also click adjust.
  51.  
  52. Once the regions have been created you will be presented with a URL box to
  53. enter the link in. If you want to do these later then just hit Escape as each
  54. one pops up.
  55.  
  56. 4. Select region tool
  57.    When active you can double click on regions (or the background for
  58.    default) to change the URL. Single clicks will select a region, and you
  59.    can delete the region by selecting the option from the menu (it's called
  60.    Delete region - you should be able to find it :-) )
  61.  
  62. 5. Edit point tool
  63.    When active, you can DRAG points around the map to your hearts content...
  64.    The closest point will always be selected, so you will probably have to be
  65.    careful if you are trying to position things carefully. Circles are
  66.    treated as you might expect - the distance from the perimeter constitutes
  67.    the distance from the point. Try it, I'm sure you'll see what I mean.
  68.  
  69. 6. Move region tool
  70.    When active you can DRAG entire regions around the map. This works on the
  71.    same principle as the Select region tool.
  72.  
  73.  
  74. The Menu
  75. --------
  76. The menu is quite simple :
  77.  
  78.   Save     Leads to a menu allowing you to save the map file in one of three
  79.            formats :
  80.               Imagemap - native to Imagen, containing the image as held in
  81.                          memory, and the map itself. Useful when editing
  82.                          client side maps
  83.               Client side - a client side map. These do not appear to work
  84.                          with ArcWeb 1.65.
  85.               NCSA/CERN - server-side maps. Format is selectable from the
  86.                          iconbar menu.
  87.  
  88.   Deselect Deselects the currently selected region.
  89.   
  90.   Copy region
  91.            Copies the currently selected region.
  92.   
  93.   Delete region
  94.            Deletes the currently selected region.
  95.  
  96.  
  97. The Main Menu
  98. -------------
  99. This menu is also simple :
  100.  
  101.   Info     Erm... it tells you about this program.
  102.            If you feel like clicking on it you'll obliterate the info, and get
  103.            a breakdown of the memory usage.
  104.            
  105.   Clear map
  106.            Clears the map from the display.
  107.   
  108.   JPEGs    Leads to a sub-menu which allows you to select the quality of the
  109.            image (only works on machines with SpriteExtend 0.99).
  110.            
  111.   Format
  112.            Sets the load and save format to NCSA or CERN. You must do this
  113.            before loading the map otherwise you'll get rubbish.
  114.            
  115.   Configure…
  116.            Allows you to change some of the default settings. This requires my
  117.            ConfigPlus application, version 1.11 or later. Otherwise, you will
  118.            have to edit the file manually - I'm sure you can work out what the
  119.            entries mean. Once Ok is selected in ConfigPlus, the settings will
  120.            be reloaded by Imagen to ensure that they take effect immediately.
  121.   
  122.   Quit     Quits the program.
  123.  
  124.  
  125. Shortcuts
  126. ---------
  127. By popular demand (well, Kozzey dropped a hint that it might be useful) I've
  128. added keyboard shortcuts to some of the options :
  129.  
  130.  Ctrl-C    Copy region
  131.  Ctrl-X    Cut region
  132.  Ctrl-Z    Clear selection
  133.  Ctrl-R    Rectangle creation mode
  134.  Ctrl-D    Circle creation mode (Doughnut anyone ?)
  135.  Ctrl-P    Polygon creation mode
  136.  Ctrl-S    Select and test mode
  137.  Ctrl-E    Edit point mode
  138.  Ctrl-M    Move region mode
  139.  F3        Open save box. This will be for the most recently loaded/saved
  140.            format out of NCSA/CERN and Imagemap, with a preference for the
  141.            latter. It's probably less obvious like this, but it's easier
  142.            to use as the file is usually the one you intended.
  143.  Ctrl-F3   Immediate save to last file (NCSA/CERN and Imagemap only).
  144.  
  145.  
  146. ImageFS
  147. -------
  148. If you have this wonderful program then you may have complained that Imagen
  149. didn't work properly with it. Now, however, it will quite happily load the
  150. sprite files from the ImageFS image filing system (well, I actually wanted to
  151. say ImageFS ImageFS, but I thought that that might be a bit too confusing...)
  152. Of course, it'll still work perfectly with ChangeFSI if you have GIFs
  153. configured inactive.
  154.  
  155.  
  156. Native JPEG support
  157. -------------------
  158. If you have RiscOS 3.6, RiscOS 3.5 with SpriteExtend 0.99, or RiscOS 3.1 with
  159. DDA and SpriteExtend 0.99 then Imagen will recognise this when it starts and
  160. use the native JPEG plotting to redraw JPEGs. A further option will appear on
  161. the main menu which will allow you to select the quality with which the image
  162. is redrawn. You may disable native JPEG support by unticking the JPEGs menu
  163. option from the main menu, however this will only take effect when you load
  164. an image.
  165.  
  166. If you save an Imagemap file with a JPEG in it then non-natively plotting
  167. machines will have to decode the image before they can display it, however,
  168. this is by far the preferred form, as it makes the files much smaller.
  169.  
  170.  
  171. That's all it does
  172. ------------------
  173. If you saw the last release (1.39) you'll remember that I said that it was
  174. the 'last' release. I was wrong. I'm not going to be again. This release is
  175. merely a stopping off point for more interesting things. By saying that I'm
  176. sure you'll expect something, but if I don't do anything I'm sure you will
  177. understand.
  178.  
  179.  
  180. How it works
  181. ------------
  182. Well, you know that it uses ChangeFSI to get the sprite (unless you use
  183. ImageFS - see later), but the rest of it is somewhat odd; a lot of routines
  184. are duplicated in slightly different forms, and the main mouseclick procedure
  185. is /massive/, but other than that the principle is quite simple.
  186.  
  187. The most difficult part is to get it to recognise polygons. I've cheated. The
  188. program converts the region into a draw path, diverts output to a sprite and
  189. plots it there. Then it does the equivilent of POINT to find out if the
  190. region required is in the block. If the pixel is set then it is in the
  191. region, otherwise it isn't. It is optimised in that it only checks the
  192. regions if the point is in the bounding box for that region, and only the
  193. bounding box is created on the sprite, not the entire image.
  194.  
  195. The plot routines are similar - the polygons are draw paths (that's how I get
  196. them to fill), the circles are CIRCLE commands, and the rectangles are
  197. RECTANGLE commands (sometimes with FILL) !
  198.  
  199. The create routines are quite special as they use 'on-the-fly' redrawing,
  200. which I'd never done until now - it's not too hard, but I had a good idea
  201. what I wanted it to do, so that made life considerably easier. Basically, if
  202. you are dragging it does a Wimp_UpdateWindow on every null event, unless the
  203. pointer is outside the window so that the image can be undrawn and redrawn.
  204. The rectangle and circle are quite easy, but the polygon, because it has to
  205. be recreated in Draw format every time it is plotted worried me somewhat.
  206. It's very inefficient, but I'm amazed at how fast it runs. I don't expect it
  207. to be too happy with running on an ARM250 (or ARM2 for that matter) though.
  208.  
  209. The polygon routines are a real pain, becuase they aren't done using the
  210. Wimp_DragBox calls, and instead just wait until you click a button. That
  211. caused some problems when I was trying to redraw things whilst moving windows
  212. around, but I think (with some horrible IF statement) I've got around that.
  213.  
  214. The edit routine was probably one of the easiest and I thought it would be
  215. quite daunting. Basically, once the creation calls were written I simply use
  216. the same calls to do the editing for me so adding the edit bits took only a
  217. few minutes. Polygons were (obviously) a problem because your can edit any of
  218. them.
  219.  
  220. If, when it loads the image it finds that the image itself is a directory -
  221. as they will be under ImageFS then it will try to load the sprite file
  222. contained within it, using whatever name ImageFS has given it. If you pass it
  223. a sprite file however (ImageFS in Auto mode) it will just load this without
  224. passing it to ChangeFSI. If the image is a JPEG and the program recognised
  225. SpriteExtend 0.99 in your machine then it will load the JPEG directly and use
  226. JPEG_PlotScaled to display it and if none of these are possible then
  227. ChangeFSI will be invoked to try to convert the file.
  228.  
  229. Some of the more recent stuff, like building the Imagemap file is incredibly
  230. dull, and makes the program much messier. Almost all the code I previously
  231. had which assumed that &FAF was the only 'alternate' filetype to &FFD has
  232. needed changing to cope with the Imagemap filetype, and thus it's become very
  233. hairy around there. Garbage collection should be included now, and it should
  234. actually work now - I found a bug in HeapLib which meant that it would only
  235. try to relocate those blocks you explicitly told it were not to be moved.
  236. Garbage collection will be performed on null polls every two seconds. All it
  237. does it repeatedly claim more and more memory so that the areas move down
  238. from the top end of the heap towards the start (checking if the move was
  239. actually valid).
  240.  
  241. When you request configuration the ConfigPlus application deals with the
  242. whole process, so all we have to do is load the configuration in Imagen. See
  243. the Config+.Imagen basic file for more details.
  244.  
  245. Erm... I can't remember much more of interest about it. It's all pretty naff,
  246. and I'm really unsure about the heap management side of things (the manager's
  247. ok, but my routines on this end ignore most of it's helpful stuff)
  248.  
  249.  
  250. Mode independance
  251. -----------------
  252. Finally, I think I can say that it'll cope with any screen mode, even this
  253. RiscPC deep modes, thanks to Dave Thomas. I assume that the JPEG plotting
  254. code works on deep modes as that's what it's intended for.
  255.  
  256.  
  257. Bugs
  258. ----
  259. I think I've fixed most of the bugs now, but if you find any please tell me.
  260. I'm not sure that the client side maps are right though. One problem I did
  261. discover in the redraw is that if you have a window overlaying the main
  262. window and you create an object it won't update the screen properly. I'll get
  263. around to fixing it sometime... honest.
  264.  
  265. I've noticed that whilst I've got Dummy Dynamic Areas installed any calls to
  266. ChangeFSI cause it to not display an hourglass. I'm really unsure as to the
  267. reason, but I'm pretty positive it's DDA's fault and not Imagen. Still means
  268. it's my fault though, doesn't it ?
  269.  
  270.  
  271. Acknowledgements
  272. ----------------
  273. I'm going to thank Kozzey for this application. He was telling me that he
  274. used Webster to create maps. Horrible, eh? So I said I'd write an image map
  275. editor and send it him in the morning (this was at about 11:30pm). He did
  276. warn me that other people were working on them and one was almost finished.
  277. Needless to say, I went over to Chris's and played Worms. But I'm only two
  278. days late. I'm sorry Kozzey. I'm just glad I didn't put any money on it :-)
  279.  
  280. Another thank you to Kozzey for the suggestion of keystrokes to speed things
  281. up, and the 'single file format' imagemap, which is much nicer ;-)
  282.  
  283. I'd also like to thank TheMoog for letting me have a copy of the SWI+ manual,
  284. from which I've got all that lovelly info that was missing from mine - don't
  285. you find that you just collect /lots/ of StrongHelp manuals ?
  286.  
  287. And finally, I'd like to thank Chris Johns for putting up with my constant
  288. ramblings about this program. Thanks Chris :-)
  289. Oh, he also suggested the quite excellent name for this program.
  290.  
  291. Thanks to Dave Thomas for the code to select colours in deep modes, and
  292. thanks to whoever it was who mailed me about the ImageFS problem.
  293.  
  294. Thanks to Stuart Halliday for finding the NCSA loading bug, and to Stuart
  295. Brodie and Sergei Monesi for pushing me for CERN maps.
  296.  
  297. Thanks to Max Eaves for reminding me that there I forgot to put JPEG and GIF
  298. sprites in the !Sprites file and for ringing up :-)
  299.  
  300.  
  301. To do...
  302. --------
  303. I'd like to get around to doing a proper scalable window and variable border
  304. around the images, but thinking about it, there is a /lot/ of mucking around
  305. to do with the internals to do that. Maybe, but don't hold your breath.
  306.  
  307.  
  308. Help and message files
  309. ----------------------
  310. This application is fully !Help compliant and it is recommended that when
  311. getting to grips with it the help should be used if only to give it some
  312. purpose! It also supports the use of MessageTrans and therefore translation
  313. to another language or changing the messages for the fun of it is much easier
  314. than it might have been.
  315.  
  316.  
  317. <BasicLibrary$File> v2.37 <---- Important !
  318. -------------------------
  319. This application requires my JFShared library to function. This can be
  320. obtained from Arcade and possibly other bulletin boards. I have seen
  321. QuickHelp on Digital Databank, so it is possible that JFShared exists there
  322. also. JFShared is also currently being carried by Hensa and can be obtained
  323. from Justin's website.
  324.  
  325.  
  326. Compatibility
  327. -------------
  328. This application has been tested on the author's A5000, but due to the lack
  329. of friends with Acorns has not been tested on other systems. Therefore, it
  330. ought to work on any RO3.1 machine. However, due to the inclusion of the
  331. Keystrokes library, this release will only partially work with RO2. The only
  332. bit which may cause problems is the Help.
  333.  
  334. I have received a report from a friend on #Acorn that Imagen in it's previous
  335. guises will work on the StrongArm. Since Basic is one of the areas that the
  336. StrongArm excells, it's likely that it will see a massive increase in it's
  337. performance - however, I'd like to see it before I make any real comment.
  338.  
  339.  
  340. Disclaimer
  341. ----------
  342. The author accepts no responsibility for any problems which this
  343. application may cause or loss of data resulting in its use. This application
  344. is Freeware. This means that it may be distributed, so long as no charge
  345. other than copying costs are charged for it.
  346.  
  347.  
  348. Contact
  349. -------
  350. Any comments, queries, donations or bug reports can be sent to :
  351.  
  352. E-Mail : Gerph@essex.ac.uk
  353. URL    : http://prompt.essex.ac.uk/users/gerph
  354. IRC    : On #Acorn as Gerph
  355. Finger : finger jrflet@postman.essex.ac.uk
  356. Tel    : (01842) 813979 (Home)
  357.  
  358. Snail Mail :
  359.     Justin Fletcher
  360.     “Galadriel”
  361.     17b Cromwell Road,
  362.     Weeting,
  363.     Brandon,
  364.     Suffolk.
  365.     IP27 0QT
  366.  
  367. History
  368. -------
  369. Started : 17 Jun 1996  -  5:11 am
  370. Paused  : 17 Jun 1996  -  8:26 am (image drawn)
  371. Restart : 17 Jun 1996  - 10:10 am
  372. Paused  : 17 Jun 1996  - 10:50 am (map drawn)
  373. Restart : 17 Jun 1996  -  6:09 pm
  374. Paused  : 17 Jun 1996  -  6:55 pm (cursor works)
  375. Restart : 17 Jun 1996  -  7:59 pm
  376. Paused  : 17 Jun 1996  -  8:04 pm (highlights selection)
  377. Restart : 17 Jun 1996  -  9:20 pm
  378. Paused  : 17 Jun 1996  -  9:46 pm (selecting circle and rect)
  379. Restart : 18 Jun 1996  -  0:31 am
  380. Check   : 18 Jun 1996  -  2:04 am (selecting polys)
  381. Check   : 18 Jun 1996  -  2:33 am (redraws properly)
  382. Check   : 18 Jun 1996  -  3:08 am (edit of URL's)
  383. Check   : 18 Jun 1996  -  4:09 am (saving map files)
  384. Check   : 18 Jun 1996  -  4:33 am (toolbar added)
  385. Check   : 18 Jun 1996  -  4:50 am (delete region works)
  386. Paused  : 18 Jun 1996  -  5:50 am (add rectangle works)
  387. Restart : 19 Jun 1996  -  2:01 am
  388. Check   : 19 Jun 1996  -  2:43 am (add circle works)
  389. Check   : 19 Jun 1996  -  2:55 am (deselect region added)
  390. Check   : 19 Jun 1996  -  3:14 am (help added)
  391. Check   : 19 Jun 1996  -  4:02 am (rects created dynamically)
  392. Check   : 19 Jun 1996  -  5:10 am (polygon creation works)
  393. Paused  : 19 Jun 1996  -  6:07 am (move tool works)
  394. Restart : 19 Jun 1996  -  6:23 am
  395. Check   : 19 Jun 1996  -  7:04 am (circle edit works)
  396. Check   : 19 Jun 1996  -  7:11 am (rectangle edit works)
  397. Check   : 19 Jun 1996  -  7:50 am (polygon edit works)
  398. Check   : 19 Jun 1996  -  9:16 am (checks out ok)
  399. Check   : 19 Jun 1996  -  9:59 am (help file finished)
  400. Restart : 20 Jun 1996  -  4:40 pm
  401. Paused  : 20 Jun 1996  -  4:47 pm (clear map added)
  402. Restart : 24 Jun 1996  -  9:14 am
  403. Paused  : 24 Jun 1996  -  9:27 am (copy added)
  404. Fixes   : 25 Jun 1996  -          (colours and edits)
  405. Restart : 27 Jun 1996  -  6:47 pm
  406. Check   : 27 Jun 1996  -  7:14 pm (loads CERN maps)
  407. Check   : 27 Jun 1996  -  7:23 pm (saves CERN maps)
  408. Paused  : 27 Jun 1996  -  8:22 pm (saves client maps)
  409. Fixes   : 04 Jul 1996  - 12:24 am (more regions available)
  410. Fixes   : 04 Jul 1996  - 12:28 am (ImageFS fix)
  411. Fixes   : 04 Jul 1996  - 12:47 am (selection fix)
  412. Fixes   : 17 Jul 1996  - 10:29 pm (NCSA load bug fix)
  413. Restart : 20 Aug 1996  -  2:06 pm
  414. Check   : 20 Aug 1996  -  2:38 pm (key shortcuts)
  415. Paused  : 20 Aug 1996  -  2:51 pm (Angela Rayner rang)
  416. Restart : 20 Aug 1996  -  3:40 pm
  417. Check   : 20 Aug 1996  -  4:10 pm (Native JPEG works)
  418. Check   : 20 Aug 1996  -  4:34 pm (Qualities for JPEGs)
  419. Paused  : 20 Aug 1996  -  4:41 pm (JPEG enable/disable)
  420. Restart : 23 Aug 1996  -  4:20 pm
  421. Check   : 23 Aug 1996  -  4:43 pm (graphics added to !Sprites)
  422. Paused  : 23 Aug 1996  -  6:40 pm (keystrokes on menus!)
  423. Restart : 31 Aug 1996  -  8:18 pm
  424. Check   : 31 Aug 1996  -  9:18 pm (iconising works)
  425. Paused  : 31 Aug 1996  -  9:43 pm (F3 works)
  426. Restart : 14 Oct 1996  -  10:21 pm
  427. Check   : 14 Oct 1996  -  11:56 pm (F3 works, Imagemaps save)
  428. Check   : 15 Oct 1996  -  1:31 am (Imagemaps load)
  429. Check   : 15 Oct 1996  -  1:45 am (Garbage collection works - finally)
  430. Paused  : 15 Oct 1996  -  2:22 am (Works ok with a 'big' map)
  431.