I need to solve a problem with High rez printing from quartz composer

CliffSchwarz's picture

I have been messing around with various painting experiments in QC and now I have come to a road block that will basically make any paint program I finally develop useless to any anyone that wants to create high rez printouts. On the mac the screen rez is 72 dpi. On my tower I am running a HD 1080i output to the monitor which looks awesome on the screen. I do a screen capture and as soon as I print out anything bigger then a post card the resolution is not high enough and the print out looks fuzzy.

300-600 dpi is an average printer. I think to get a decent large print I would need to do a screen capture with a screen that is 3200 by 1800 minimum and 6400 by 3200 would be best.

So the question is is there a way to fake it how can I make a high res print from a QC program with out having to render it to my monitor,

Or any other solution for this problem would be welcome as well

jersmi's picture
Re: I need to solve a problem with High rez printing from ...

Maybe try saving to file using Image Writer, which would be png, or maybe Syphon Recorder, which can save stills.

cybero's picture
Re: I need to solve a problem with High rez printing from ...

I think you are on the right lines about exporting the image as large as possible and then resizing. Don't think you can buck the 72 dpi ceiling though. Tiling. Perhaps a dedicated plugin drawing upon printing frameworks supportive of previewing and saving to file at that resolution. Due to CoreImage limits, tiling is the best solution. Printer quality Quartz Composer pictures, nice idea. :-)

franz's picture
Re: I need to solve a problem with High rez printing from ...

place your comp in a Render in Image patch, then set its resolution to very big, and save it using ImageWriter.

dust's picture
Re: I need to solve a problem with High rez printing from ...

try these developer sample apps.

poster....

Quote:
poster hows how to tile the rendering of a QCRenderer's composition by modifying appropriately the OpenGL projection matrix. Here "poster" means an image that could be larger than the GPU can supports. In this case, the GPU generates the image part by part. It generates one part of the image at each time and copies the result to the corresponding part of the image.

just select your comp and export. you will more than likely need to do some fancy structure saving if making a drawing app in order to save your drawings state before render tiling. this means drawing with line structures not feedback accumulations.

depending on how large you really want to go, you may find the JIT sample MassiveImage useful...

Quote:
MasssiveImage is a Cocoa application that shows how to use a CGDataProviderRef to perform just in time delivery of image data. This technique is used to avoid needing to maintain complete image data in memory when using Image IO to save it to disk. This technique could be used in similar situations to reduce the memory demands of large images.

to get this to work you would want to combine the above poster project with this as the sample massive image is programmatically generated. i would think that with a modern gpu and cpu plus the above mentioned techniques in theory you could make a very large image.

PreviewAttachmentSize
Poster.app_.zip18.71 KB
Poster.src_.zip46.73 KB
MassiveImage.src_.zip69.29 KB

vade's picture
Re: I need to solve a problem with High rez printing from ...

Rather than tile, you can use a software renderer for those sizes pretty easily. Software ought to just work and provide identical results*

Software rendering supports contexts / destinations up to 16384x 16384 according to http://developer.apple.com/graphicsimaging/opengl/capabilities/index.html

  • Identical results may or may not be identical. Consult local state laws. Proximity to natural magnetic objects, lay lines and or vampire covens may disrupt results. Identical results subject to change based on phase of moon, tides, and the current temperament of Tyche, Goddess of chance. Praise unto her.