World: r3wp
[Postscript] Emitting Postscript from REBOL
older newer | first last |
Geomol 23-Feb-2008 [1415] | I have problem with an image like in this example: do http://home.tiscali.dk/john.niclasen/postscript/postscript.r img: to-image layout [box 20x20 red box blue] write %imagetest.ps postscript [page [translate 100 400 scale 72 72 image img]] Try print (or view) the imagetest.ps file. Do you also get an error? |
Henrik 23-Feb-2008 [1416x3] | ERROR: /rangecheckESP Ghostscript 815.04: Unrecoverable error, exit code 1 in --string-- Operand stack: picstr 70560 Execution stack: %interp_exit .runexec2 --nostringval-- --nostringval-- --nostringval-- 2 %stopped_push --nostringval-- --nostringval-- --nostringval-- false 1 %stopped_push 1 3 %oparray_pop 1 3 %oparray_pop 1 3 %oparray_pop 1 3 %oparray_pop .runexec2 --nostringval-- --nostringval-- --nostringval-- 2 %stopped_push --nostringval-- Dictionary stack: --dict:1125/1686(ro)(G)-- --dict:0/20(G)-- --dict:108/200(L)-- Current allocation mode is local |
That's what I get | |
Geomol, I wonder if GS can output it's stacks for debugging purposes. would that be useful to you? | |
Graham 23-Feb-2008 [1419] | Since postscript is a printer language, it can print the stacks if it encounters an error. |
Henrik 23-Feb-2008 [1420] | then I suppose it's enough to use the ghostscript console |
Graham 23-Feb-2008 [1421] | sure if you're using ghostscript .. I meant if you were testing on a postscript printer. |
Henrik 23-Feb-2008 [1422] | I think it's easier to debug it in ghostscript. The printers I've tried this on will not print stack information. Perhaps only if I dive really deep into the capabilities of the printer, which I have no time for. |
Graham 23-Feb-2008 [1423x2] | You have to write a postscript function that prints the stacks. |
Any postscript printer should be able to do that.S | |
Henrik 23-Feb-2008 [1425] | I see, so it's not built-on. |
Graham 23-Feb-2008 [1426x2] | No. Just a debugging function that you add to your postscript file that you are trying to print. |
http://www.acumentraining.com/AcumenJournal.html#200504 | |
Henrik 23-Feb-2008 [1428] | perhaps that would be a good thing to include in the dialect. |
Geomol 23-Feb-2008 [1429] | Henrik, I'll look closer at this. Stack output probably won't help me much, but thanks for the offer. |
Graham 23-Feb-2008 [1430] | this is another PDF about using postscript images http://www.acumentraining.com/AcumenJournal.html#200504 |
Geomol 24-Feb-2008 [1431] | It seems like, I got image to work. Try this: do http://home.tiscali.dk/john.niclasen/postscript/postscript.r write %palms.ps postscript [DeviceRGB page [translate 100x400 scale 72x72 image http://www.rebol.com/view/palms.jpg]] The file palms.ps can now be viewed or printed. If anyone got problem with this, please let me know. |
Henrik 24-Feb-2008 [1432x2] | wow, that took a long time to generate. |
but it works | |
Geomol 24-Feb-2008 [1434] | ! Great! :) |
Henrik 24-Feb-2008 [1435x2] | 15 seconds at 100% CPU |
when adding DeviceRGB in your previous example, that example works too. | |
Geomol 24-Feb-2008 [1437] | Maybe because it had to load image from web also!? Try with a local version of the image. |
Henrik 24-Feb-2008 [1438] | and that took less than 1 second to generate. |
Geomol 24-Feb-2008 [1439] | cool |
Henrik 24-Feb-2008 [1440] | well, it would be bad if it ate that much CPU, just waiting for network stuff. |
Geomol 24-Feb-2008 [1441x2] | I load the image with load-image/update to be sure to always get latest version. |
Maybe your system had a hickup? Try again! | |
Henrik 24-Feb-2008 [1443] | tried several times, same result. |
Geomol 24-Feb-2008 [1444] | ok |
Henrik 24-Feb-2008 [1445] | will test with a local file soon |
Geomol 24-Feb-2008 [1446] | Try take a local copy of postscript.r and change the load-image to not do a /update. |
Henrik 24-Feb-2008 [1447x4] | writing palms.jpg locally took 1 second |
testing postscript generation | |
perhaps 12 seconds with a local palms.jpg file | |
what do you do to translate the data? is it in mezzanine form? | |
Geomol 24-Feb-2008 [1451x2] | Images are implemented in postscript.r using ASCIIHexDecode filter, which double the size of image data. It would be better to implement ASCII85, which does a 4:5 increase only. Also images are handled in something called dictionaries in PostScript. This require PostScript v. 2.0. |
If you look in postscript.r, I encode the image data in line 211-220. It's just normal hex written as ASCII, so you get '0'-'9' + 'A'-'F'. | |
Henrik 24-Feb-2008 [1453x2] | when building the image data, how do you do that? or does ASCIIHexDecode do that? |
ok | |
Geomol 24-Feb-2008 [1455] | So this is very simple encoding. ASCII85 encoding is a bit more difficult, but will take up less space. |
Henrik 24-Feb-2008 [1456x3] | perhaps it's equal in speed, I don't know. odd though, I can't see what's so slow about that code, other than the newline insertion thing |
perhaps inserting in images is very slow? | |
does it need to be done? | |
Geomol 24-Feb-2008 [1459x2] | It seems to work without the newlines, but then the ps file become difficult to enter with e.g. vim. That part is fast, I think. It only put in a newline for every 80 chars. |
My guess is, that it's the load-image/update that give you performance hit. Try change it! | |
Henrik 24-Feb-2008 [1461x3] | it does not, I tried a local file. 12 seconds. |
will try to add some profiling hints | |
nope, it's the inserting part. the rest is taking no time at all. | |
Geomol 24-Feb-2008 [1464] | You say, you tried a local file, but did you change the load-image in postscript.r? |
older newer | first last |