home *** CD-ROM | disk | FTP | other *** search
/ Esprit de Apple Corps / EDAC-2.iso / Graphics / Apps / Programs / LHG / readme.txt < prev   
Encoding:
Text File  |  1992-10-18  |  5.7 KB  |  92 lines

  1. Lord High GIFfer (prototype)
  2. by Todd Whitesel
  3. GEnie special release 18-Oct-92
  4. Code freeze date 4-Mar-92
  5. USE AT YOUR OWN RISK.
  6.  
  7. Ok, due to popular demand and the fact that the real program is still at least
  8. a few months off, I am releasing this sucker into the libraries so everyone
  9. can have fun with it. Just remember that I have rewritten over half of it
  10. already and plan to rewrite the other half in the next few months, so what
  11. you are looking at is strictly a "first cut" design prototype that I made so
  12. I could investigate what sorts of things worked and what didn't. I hesitate
  13. to even call this an Alpha version, as some people have suggested. This code
  14. was frozen just as I was stepping back from the project for a while in order
  15. to figure out what directions it should go in. Originally I thought I could
  16. get away with far fewer changes, but that bad judgement call and the rest of
  17. my life have been what's kept LHG from being completed by now.
  18.  
  19. This version of the code has some known problems and limitations: number one
  20. is that only shell arguments and finder icons are supported. To use it with a
  21. shell, make sure LordHighGIFfer's filetype is EXE and give it the pathnames of
  22. gif files to view as arguments. To use with the finder, create */apps/ and put
  23. LordHighGIFfer there or edit the icon if you are using system 5. (With 6 you
  24. can just remap the icons and put it anywhere you like.) The LHG.icon currently
  25. recognizes both TXT and BIN files ending in ".gif". Finder doesn't seem to mind
  26. it being an EXE instead of an S16, so I don't see any benefit to changing it.
  27. If you try to launch it directly, it will quit without doing anything.
  28.  
  29. Number two is that the memory allocation is yucky. Basically what it will do
  30. is allocate a single huge block from the memory manager to load in the GIF.
  31. Then it will allocate another huge block to decode the image into. With large
  32. pictures this can easily run into problems on 1 meg systems and even on four
  33. meg systems (like mine) if the picture is huge. If it appears to "skip" a
  34. picture, then it is likely that it couldn't allocate enough memory. "Shift
  35. booting" and other fun techniques can be used to deal with this if you really
  36. want to view something that barely fits. I had to rewrite the decompressor
  37. from scratch to alleviate part of this problem, and I still have some GIFs
  38. that are so huge I still can't view them without rewriting it again (which
  39. won't happen before the 1.0 release because, naturally, I would like to get
  40. that finished before the decade is out).
  41.  
  42. Number three is that its error-handling is sorely lacking (if not totally
  43. absent). If it has a problem decoding it will simply stop and let you view
  44. what it got, which means that you'll see part of a picture and then lots of
  45. random gunk that happened to be sitting in memory. Until recently this would
  46. _always_ be caused by an incorrect or corrupt GIF; however James Brookes has
  47. found a GIF that the prototype aborts about 3/4 of the way through but that
  48. my new decompressor can view just fine. As of today I don't know what causes
  49. it, but by watching the thermo bars it looks like an ambiguous part of the
  50. GIF specification is being tested and the prototype makes the wrong decision.
  51. If you get a picture with gunk in it, please try it on another program or
  52. another system and make sure it is good before you send me a bug report;
  53. I'll try to get the picture and make sure the current code handles it.
  54.  
  55. Number four is the way interlaced GIFs are handled. Interlaced GIFs are great
  56. for previewing a picture while you download it but they are annoying as hell
  57. for anything else. The prototype's viewer will redraw each frame in the order
  58. it was encoded in the GIF, so for interlaced pictures you get this funky
  59. venetian blinds effect that reminds me of classic HGR slide shows. I haven't
  60. quite gotten to fixing this effect yet, but it will be gone before I ship.
  61. Interlaced picture viewing also has the only true crash danger that I know of;
  62. if it tries to display a picture that is interlaced but is less than 5 lines
  63. high, it will trash memory and crash. Since virtually no _real_ GIF is this
  64. short, the problem only occurs with damaged pictures that look just enough
  65. like a legitimate picture to fool the decoder -- if the damage makes it look
  66. like the GIF contains multiple images and one of them triggers the bug. I only
  67. discovered this a month ago with a damaged picture, and it hasn't happened
  68. before or since, so it's not very likely that you'll run into it.
  69.  
  70. Number five is the color picker. It is slow. Way too slow. As I write this my
  71. current project is making it faster and adding some extra options at the same
  72. time. If you don't want to wait for the palette crunch, just click the mouse
  73. any time during the decoding (i.e. thermo bars creeping) or during the palette
  74. dancing screen and it will go straight to a visible-intensity-to-graylevel
  75. convert (this picks the brightness of each color according to color theory, by
  76. adding in 30% of the red, 60% of the green, and 10% of the blue, and usually
  77. looks more natural than the picture you get with 33% of each).
  78.  
  79. Lastly is the interface. It has none. You get the thermo bar, the dancing
  80. palette screen, and the view screen where you can use the mouse to move around
  81. in the picture. Click once to go on to the next picture. It doesn't have an
  82. exit key (sorry) but the CDA panel should be accessible anytime except while
  83. it's decoding (this is because I wasn't calling GetNextEvent often enough).
  84.  
  85. Ok, I think that about covers it. Just remember, if there's something you don't
  86. like about it, you're probably right. But I hope you like it anyway. It took
  87. a lot of work to bring the program to even that point, because there are a lot
  88. of nonobvious things that I was trying to get working, and I didn't spend too
  89. much time polishing the things I was already planning to rewrite.
  90.  
  91. Todd Whitesel
  92.