Based on the size of your PostScript output, it sounds like you are having IDL output a bitmap representation of your graphics window and like your graphics window must be very, very large in pixel size. Is this correct? If all that your IDL graphics code were doing was making line plots, contours, or line/grid-type surfaces, with only line or text annotations, then I would think that there should be a way to have PostScript store your xy-phase plot as vector output, which could potentially store at a tiny fraction of the size of bitmap output. However, the moment you have any image-like element integrated in your graphics scene (for example, texture-mapping on an IDLgrSurface or cell-filling a CONTOUR or painting your plot lines on the only kind of custom background that PostScript will allow - a TV'ed image background), then you are indeed stuck with having to output your PostScript in bitmap format only.
Once you know that you are stuck with bitmap format, your only recourse for downsizing the output file size is to output a smaller version of your image. This is the "downsampling" that you specifically asked about, and the most common (and flexible) IDL routine for downsampling is CONGRID. Its usage is quite simple, demonstrated below:
origDims = size(veryLarge2DpixelArray, /DIMENSIONS)
reducedDims = origDims * 0.1
downsampledImage = CONGRID(veryLarge2DpixelArray, reducedDims[0], reducedDims[1])
That is all that it takes.
(For an example of CONGRID in action try out the sample code posted in my response to message thread 3401 ("Resizing a widget_draw under linux system") right nearby this message thread.)
James Jones
|