home *** CD-ROM | disk | FTP | other *** search
/ Shareware Overload / ShartewareOverload.cdr / clipart / gs22.zip / PSTOPPM.PS < prev    next >
Text File  |  1990-12-11  |  13KB  |  404 lines

  1. %! PS-Adobe-2.0
  2. %% for GhostScript 2.0
  3. %% Program for reading a .ps file and writing out a PPM file.
  4. %% Original version by Phillip Conrad - Perfect Byte, Inc.
  5. %% Modified 06/26/90 for a color file
  6. %% Modified on 08/02/90 for using the CORRECT color map.
  7. %% Modified by L. Peter Deutsch -- Aladdin Enterprises -- 08/02/90
  8. %% Modified by L. Peter Deutsch -- Aladdin Enterprises -- 08/25/90 --
  9. %%   converted from a one-shot program to a utility package,
  10. %%   designed to be used from an interactive terminal.
  11. %% Modified by Henry Minsky 11/03/90
  12. %%   for each showpage, it writes out a ppm file with name filename.ppm.N
  13. %%   where N increments each showpage, starting at 1
  14. %% Modified by L. Peter Deutsch 11/07/90
  15. %%   to use filename.ppm for the first page, renamed to filename.1ppm
  16. %%   with subsequent pages .2ppm, etc. if more than one page.
  17. %%
  18. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  19.  
  20. %%%%%% Define the directory for holding the PPM information
  21.  
  22. /ppmdict 30 dict def
  23. ppmdict begin
  24.  
  25.   /Horz_dpi 72 def        % defaults to screen density
  26.   /Vert_dpi 72 def
  27.  
  28.   /OutFilePrefix () def        % default to null (current directory)
  29.  
  30.   /Palette1 [1 1 1 rgbcolor 0 0 0 rgbcolor] def
  31.   /Palette8
  32.     [
  33. %========== Here we define all 256 color entries as color objects. ======
  34. %========== Colors were taken from the W Xindows default colors. ======
  35. 0.000   0.000   0.000   rgbcolor
  36. 1.000   1.000   1.000   rgbcolor
  37. 0.659   0.659   0.659   rgbcolor
  38. 0.922   0.922   0.922   rgbcolor
  39. 0.361   0.361   0.361   rgbcolor
  40. 0.216   0.216   0.216   rgbcolor
  41. 0.373   0.573   0.620   rgbcolor
  42. 0.522   0.800   0.867   rgbcolor
  43. 0.204   0.314   0.341   rgbcolor
  44. 0.122   0.188   0.204   rgbcolor
  45. 0.447   0.620   0.996   rgbcolor
  46. 0.627   0.867   1.000   rgbcolor
  47. 0.247   0.341   0.549   rgbcolor
  48. 0.149   0.204   0.329   rgbcolor
  49. 0.380   0.525   0.847   rgbcolor
  50. 0.184   0.184   0.392   rgbcolor
  51. 1.000   1.000   0.000   rgbcolor
  52. 0.690   0.886   1.000   rgbcolor
  53. 1.000   0.000   0.000   rgbcolor
  54. 0.502   0.502   0.502   rgbcolor
  55. 0.937   0.875   0.518   rgbcolor
  56. 0.333   0.996   0.333   rgbcolor
  57. 0.996   0.000   0.000   rgbcolor
  58. 0.400   0.996   0.341   rgbcolor
  59. 0.996   0.596   0.478   rgbcolor
  60. 0.996   0.792   0.443   rgbcolor
  61. 0.996   0.996   0.996   rgbcolor
  62. 0.996   0.553   0.486   rgbcolor
  63. 0.996   0.663   0.467   rgbcolor
  64. 0.996   0.769   0.447   rgbcolor
  65. 0.996   0.722   0.459   rgbcolor
  66. 0.996   0.576   0.482   rgbcolor
  67. 0.996   0.584   0.478   rgbcolor
  68. 0.996   0.710   0.459   rgbcolor
  69. 0.596   0.996   0.365   rgbcolor
  70. 0.996   0.545   0.490   rgbcolor
  71. 0.996   0.651   0.467   rgbcolor
  72. 0.996   0.698   0.463   rgbcolor
  73. 0.996   0.686   0.463   rgbcolor
  74. 0.996   0.745   0.455   rgbcolor
  75. 0.996   0.514   0.494   rgbcolor
  76. 0.996   0.988   0.416   rgbcolor
  77. 0.996   0.047   0.604   rgbcolor
  78. 0.996   0.012   0.314   rgbcolor
  79. 0.996   0.031   0.710   rgbcolor
  80. 0.404   0.082   0.996   rgbcolor
  81. 0.996   0.984   0.247   rgbcolor
  82. 0.996   0.329   0.294   rgbcolor
  83. 0.000   0.753   0.000   rgbcolor
  84. 0.125   0.753   0.000   rgbcolor
  85. 0.251   0.753   0.000   rgbcolor
  86. 0.376   0.753   0.000   rgbcolor
  87. 0.502   0.753   0.000   rgbcolor
  88. 0.627   0.753   0.000   rgbcolor
  89. 0.753   0.753   0.000   rgbcolor
  90. 0.878   0.753   0.000   rgbcolor
  91. 0.000   0.878   0.000   rgbcolor
  92. 0.125   0.878   0.000   rgbcolor
  93. 0.251   0.878   0.000   rgbcolor
  94. 0.376   0.878   0.000   rgbcolor
  95. 0.502   0.878   0.000   rgbcolor
  96. 0.627   0.878   0.000   rgbcolor
  97. 0.753   0.878   0.000   rgbcolor
  98. 0.878   0.878   0.000   rgbcolor
  99. 0.000   0.000   0.251   rgbcolor
  100. 0.125   0.000   0.251   rgbcolor
  101. 0.251   0.000   0.251   rgbcolor
  102. 0.376   0.000   0.251   rgbcolor
  103. 0.502   0.000   0.251   rgbcolor
  104. 0.627   0.000   0.251   rgbcolor
  105. 0.753   0.000   0.251   rgbcolor
  106. 0.878   0.000   0.251   rgbcolor
  107. 0.000   0.125   0.251   rgbcolor
  108. 0.125   0.125   0.251   rgbcolor
  109. 0.251   0.125   0.251   rgbcolor
  110. 0.376   0.125   0.251   rgbcolor
  111. 0.502   0.125   0.251   rgbcolor
  112. 0.627   0.125   0.251   rgbcolor
  113. 0.753   0.125   0.251   rgbcolor
  114. 0.878   0.125   0.251   rgbcolor
  115. 0.000   0.251   0.251   rgbcolor
  116. 0.125   0.251   0.251   rgbcolor
  117. 0.251   0.251   0.251   rgbcolor
  118. 0.376   0.251   0.251   rgbcolor
  119. 0.502   0.251   0.251   rgbcolor
  120. 0.627   0.251   0.251   rgbcolor
  121. 0.753   0.251   0.251   rgbcolor
  122. 0.878   0.251   0.251   rgbcolor
  123. 0.000   0.376   0.251   rgbcolor
  124. 0.125   0.376   0.251   rgbcolor
  125. 0.251   0.376   0.251   rgbcolor
  126. 0.376   0.376   0.251   rgbcolor
  127. 0.502   0.376   0.251   rgbcolor
  128. 0.627   0.376   0.251   rgbcolor
  129. 0.753   0.376   0.251   rgbcolor
  130. 0.878   0.376   0.251   rgbcolor
  131. 0.000   0.502   0.251   rgbcolor
  132. 0.125   0.502   0.251   rgbcolor
  133. 0.251   0.502   0.251   rgbcolor
  134. 0.376   0.502   0.251   rgbcolor
  135. 0.502   0.502   0.251   rgbcolor
  136. 0.627   0.502   0.251   rgbcolor
  137. 0.753   0.502   0.251   rgbcolor
  138. 0.878   0.502   0.251   rgbcolor
  139. 0.000   0.627   0.251   rgbcolor
  140. 0.125   0.627   0.251   rgbcolor
  141. 0.251   0.627   0.251   rgbcolor
  142. 0.376   0.627   0.251   rgbcolor
  143. 0.502   0.627   0.251   rgbcolor
  144. 0.627   0.627   0.251   rgbcolor
  145. 0.753   0.627   0.251   rgbcolor
  146. 0.878   0.627   0.251   rgbcolor
  147. 0.000   0.753   0.251   rgbcolor
  148. 0.125   0.753   0.251   rgbcolor
  149. 0.251   0.753   0.251   rgbcolor
  150. 0.376   0.753   0.251   rgbcolor
  151. 0.502   0.753   0.251   rgbcolor
  152. 0.627   0.753   0.251   rgbcolor
  153. 0.753   0.753   0.251   rgbcolor
  154. 0.878   0.753   0.251   rgbcolor
  155. 0.000   0.878   0.251   rgbcolor
  156. 0.125   0.878   0.251   rgbcolor
  157. 0.251   0.878   0.251   rgbcolor
  158. 0.376   0.878   0.251   rgbcolor
  159. 0.502   0.878   0.251   rgbcolor
  160. 0.627   0.878   0.251   rgbcolor
  161. 0.753   0.878   0.251   rgbcolor
  162. 0.878   0.878   0.251   rgbcolor
  163. 0.000   0.000   0.502   rgbcolor
  164. 0.125   0.000   0.502   rgbcolor
  165. 0.251   0.000   0.502   rgbcolor
  166. 0.376   0.000   0.502   rgbcolor
  167. 0.502   0.000   0.502   rgbcolor
  168. 0.627   0.000   0.502   rgbcolor
  169. 0.753   0.000   0.502   rgbcolor
  170. 0.878   0.000   0.502   rgbcolor
  171. 0.000   0.125   0.502   rgbcolor
  172. 0.125   0.125   0.502   rgbcolor
  173. 0.251   0.125   0.502   rgbcolor
  174. 0.376   0.125   0.502   rgbcolor
  175. 0.502   0.125   0.502   rgbcolor
  176. 0.627   0.125   0.502   rgbcolor
  177. 0.753   0.125   0.502   rgbcolor
  178. 0.878   0.125   0.502   rgbcolor
  179. 0.000   0.251   0.502   rgbcolor
  180. 0.125   0.251   0.502   rgbcolor
  181. 0.251   0.251   0.502   rgbcolor
  182. 0.376   0.251   0.502   rgbcolor
  183. 0.502   0.251   0.502   rgbcolor
  184. 0.627   0.251   0.502   rgbcolor
  185. 0.753   0.251   0.502   rgbcolor
  186. 0.878   0.251   0.502   rgbcolor
  187. 0.000   0.376   0.502   rgbcolor
  188. 0.125   0.376   0.502   rgbcolor
  189. 0.251   0.376   0.502   rgbcolor
  190. 0.376   0.376   0.502   rgbcolor
  191. 0.502   0.376   0.502   rgbcolor
  192. 0.627   0.376   0.502   rgbcolor
  193. 0.753   0.376   0.502   rgbcolor
  194. 0.878   0.376   0.502   rgbcolor
  195. 0.000   0.502   0.502   rgbcolor
  196. 0.125   0.502   0.502   rgbcolor
  197. 0.251   0.502   0.502   rgbcolor
  198. 0.376   0.502   0.502   rgbcolor
  199. 0.502   0.502   0.502   rgbcolor
  200. 0.627   0.502   0.502   rgbcolor
  201. 0.753   0.502   0.502   rgbcolor
  202. 0.878   0.502   0.502   rgbcolor
  203. 0.000   0.627   0.502   rgbcolor
  204. 0.125   0.627   0.502   rgbcolor
  205. 0.251   0.627   0.502   rgbcolor
  206. 0.376   0.627   0.502   rgbcolor
  207. 0.502   0.627   0.502   rgbcolor
  208. 0.627   0.627   0.502   rgbcolor
  209. 0.753   0.627   0.502   rgbcolor
  210. 0.878   0.627   0.502   rgbcolor
  211. 0.000   0.753   0.502   rgbcolor
  212. 0.125   0.753   0.502   rgbcolor
  213. 0.251   0.753   0.502   rgbcolor
  214. 0.376   0.753   0.502   rgbcolor
  215. 0.502   0.753   0.502   rgbcolor
  216. 0.627   0.753   0.502   rgbcolor
  217. 0.753   0.753   0.502   rgbcolor
  218. 0.878   0.753   0.502   rgbcolor
  219. 0.000   0.878   0.502   rgbcolor
  220. 0.125   0.878   0.502   rgbcolor
  221. 0.251   0.878   0.502   rgbcolor
  222. 0.376   0.878   0.502   rgbcolor
  223. 0.502   0.878   0.502   rgbcolor
  224. 0.627   0.878   0.502   rgbcolor
  225. 0.753   0.878   0.502   rgbcolor
  226. 0.878   0.878   0.502   rgbcolor
  227. 0.000   0.000   0.753   rgbcolor
  228. 0.125   0.000   0.753   rgbcolor
  229. 0.251   0.000   0.753   rgbcolor
  230. 0.376   0.000   0.753   rgbcolor
  231. 0.502   0.000   0.753   rgbcolor
  232. 0.627   0.000   0.753   rgbcolor
  233. 0.753   0.000   0.753   rgbcolor
  234. 0.878   0.000   0.753   rgbcolor
  235. 0.000   0.125   0.753   rgbcolor
  236. 0.125   0.125   0.753   rgbcolor
  237. 0.251   0.125   0.753   rgbcolor
  238. 0.376   0.125   0.753   rgbcolor
  239. 0.502   0.125   0.753   rgbcolor
  240. 0.627   0.125   0.753   rgbcolor
  241. 0.753   0.125   0.753   rgbcolor
  242. 0.878   0.125   0.753   rgbcolor
  243. 0.000   0.251   0.753   rgbcolor
  244. 0.125   0.251   0.753   rgbcolor
  245. 0.251   0.251   0.753   rgbcolor
  246. 0.376   0.251   0.753   rgbcolor
  247. 0.502   0.251   0.753   rgbcolor
  248. 0.627   0.251   0.753   rgbcolor
  249. 0.753   0.251   0.753   rgbcolor
  250. 0.878   0.251   0.753   rgbcolor
  251. 0.000   0.376   0.753   rgbcolor
  252. 0.125   0.376   0.753   rgbcolor
  253. 0.251   0.376   0.753   rgbcolor
  254. 0.376   0.376   0.753   rgbcolor
  255. 0.502   0.376   0.753   rgbcolor
  256. 0.627   0.376   0.753   rgbcolor
  257. 0.753   0.376   0.753   rgbcolor
  258. 0.878   0.376   0.753   rgbcolor
  259. 0.000   0.502   0.753   rgbcolor
  260. 0.125   0.502   0.753   rgbcolor
  261. 0.251   0.502   0.753   rgbcolor
  262. 0.376   0.502   0.753   rgbcolor
  263. 0.502   0.502   0.753   rgbcolor
  264. 0.627   0.502   0.753   rgbcolor
  265. 0.753   0.502   0.753   rgbcolor
  266. 0.878   0.502   0.753   rgbcolor
  267. 0.000   0.627   0.753   rgbcolor
  268. 0.125   0.627   0.753   rgbcolor
  269. 0.251   0.627   0.753   rgbcolor
  270. 0.376   0.627   0.753   rgbcolor
  271. 0.502   0.627   0.753   rgbcolor
  272. 0.627   0.627   0.753   rgbcolor
  273. 0.753   0.627   0.753   rgbcolor
  274. 0.878   0.627   0.753   rgbcolor
  275. 0.000   0.753   0.753   rgbcolor
  276. 0.125   0.753   0.753   rgbcolor
  277. 0.251   0.753   0.753   rgbcolor
  278. 0.376   0.753   0.753   rgbcolor
  279. 0.502   0.753   0.753   rgbcolor
  280. 0.627   0.753   0.753   rgbcolor
  281. 0.753   0.753   0.753   rgbcolor
  282. 0.878   0.753   0.753   rgbcolor
  283. 0.000   0.878   0.753   rgbcolor
  284. 0.125   0.878   0.753   rgbcolor
  285. 0.251   0.878   0.753   rgbcolor
  286. 0.376   0.878   0.753   rgbcolor
  287. 0.502   0.878   0.753   rgbcolor
  288. 0.627   0.878   0.753   rgbcolor
  289. 0.753   0.878   0.753   rgbcolor
  290. 0.878   0.878   0.753   rgbcolor
  291.     ] def
  292.  
  293.   % Redefine copypage and showpage appropriately
  294.   /copypage
  295.    { ppmdict begin
  296.  
  297.        /PageCount PageCount 1 add def
  298.  
  299.        OutFilePrefix FileName concatstrings
  300.        PageCount 1 eq
  301.     { (.ppm) concatstrings            % first page
  302.     }
  303.     { PageCount 2 eq
  304.        {                    % second page, rename first
  305.          dup dup (.ppm) concatstrings
  306.          exch (.1ppm) concatstrings
  307.          (Renaming ) print 1 index print ( to ) print
  308.            dup print (\n) print
  309.          flush
  310.          renamefile
  311.        } if
  312.       (.) PageCount (xxxxxx) cvs concatstrings
  313.       (ppm) concatstrings concatstrings
  314.     } ifelse
  315.        /FileNameOut exch def
  316.  
  317.        FileNameOut (w) file
  318.          /FileDescOut exch def
  319.  
  320.        (Writing ) print FileNameOut print (\n) print
  321.        flush
  322.        FileDescOut Device writeppmfile
  323.        FileDescOut closefile
  324.  
  325.        /WrotePage true def
  326.  
  327.      end
  328.    } userdict begin def end
  329.   /showpage
  330.    { copypage erasepage initgraphics
  331.    } userdict begin def end
  332.  
  333.   /Convert            % the main procedure
  334.                   % <filename> <palette> Convert -
  335.    { /Palette exch def
  336.      /FileName exch def
  337.  
  338.      /PageCount 0 def
  339.  
  340.      /ScaleX Horz_dpi 72 div def
  341.      /ScaleY Vert_dpi 72 div def
  342.  
  343.      /Width 85 Horz_dpi mul 5 add 10 div cvi def % add 5 to round up!
  344.      /Height 11 Vert_dpi mul def
  345.  
  346.      FileName (.ps) concatstrings
  347.        /FileNameIn exch def        % file name with extension
  348.  
  349.      [ScaleX 0.0 0.0 ScaleY neg 0.0 Height]
  350.      Width Height Palette makeimagedevice
  351.        /Device exch def
  352.      Device setdevice
  353.  
  354.      /WrotePage false def
  355.  
  356.      % For running the file, remove ppmdict from the dict stack
  357.      FileNameIn end run        % ppmdict
  358.      ppmdict begin
  359.      WrotePage not { showpage } if    % make sure the page got written
  360.      end            % ppmdict
  361.  
  362.    } def
  363.  
  364. end                % ppmdict
  365.  
  366. %%%%%% Define the user-callable procedures
  367.  
  368. /ppmsetdensity
  369.  { ppmdict begin
  370.    /Vert_dpi exch def
  371.    /Horz_dpi exch def
  372.    end
  373.  } def
  374.  
  375. /ppmsetprefix
  376.  { ppmdict begin
  377.    /OutFilePrefix exch def
  378.    end
  379.  } def
  380.  
  381. /ppm1run
  382.  { ppmdict begin   Palette1 Convert
  383.  } def
  384.  
  385. /ppm8run
  386.  { ppmdict begin   Palette8 Convert
  387.  } def
  388.  
  389. /ppm24run
  390.  { ppmdict begin   null Convert
  391.  } def
  392.  
  393. %%%%%% Display instructions for the user.
  394.  
  395. (Usage: (file) ppmNrun\n) print
  396. (   converts file.ps to file.ppm (single page),\n) print
  397. (     or file.1ppm, file.2ppm, ... (multi page).\n) print
  398. (   N is # of bits per pixel (1, 8, or 24).\n) print
  399. (Examples: (golfer) ppm1run   ..or..   (escher) ppm8run\n) print
  400. (Optional commands you can give first:\n) print
  401. (   horiz_DPI vert_DPI ppmsetdensity\n) print
  402. (   (dirname/) ppmsetprefix\n) print
  403. flush
  404.