Displaying a massive Image

I’ve been trying to display a particular image using OFImage. Its 588x4272 pixels, and everytime I call the draw() method for it, the program renders a blank rectangle.
If I can’t use the draw() method to render the image, is there any way I could recreate the image pixel by pixel? I know there is a method to get the pixel data, but can is there a way I could then display the data?

Thanks
DC

1/ are you calling ofSetColor( 0xff,0xff,0xff) before drawing the image?

2/ can you break the image into two parts, 588x2136 pixels each?

hth
d

Chances are your max texture size is 4096 (although is it possible you can do 8192), use glView [1] or the OpenGL Driver Monitor on OSX to check if this is the problem.

/A

[1] http://www.realtech-vr.com/glview/

do you have a need to display it at such a high resolution? (you have some kind of otuput device (monitor, MPE etc.) that takes crazy high resoultion?)

if not, then you can resize to something more manageable before you draw.

Thanks for the suggestions.

@ Damian: I had thought the ofSetColor might be the culprit, though I tested the program with smaller images and they displayed excellently.
I considered splitting them- and I’ll probably end up doing that- but my real worry is if the actual pixel data on the original picture is available in its entirety. Is there, perhaps, a method of attaching the pixel list from the second image into the list from the first?

@hahakid: If this the problem, then I probably need to engineer a different method. I am going to need to run it on a computer far less sophisticated than the one i am using, unfortunately. I appreciate the advice, regardless.

@Drosen: Its going to be on a rather large scale, at the moment, so resolution is important.

[quote author=“Munin”]I considered splitting them- and I’ll probably end up doing that- but my real worry is if the actual pixel data on the original picture is available in its entirety. Is there, perhaps, a method of attaching the pixel list from the second image into the list from the first?
[/quote]

mm… not really. the problem is that your video hardware cannot handle the image size you want, so there’s no way to store all that data contiguously in video ram. (you could, however, re-jig the image so that it’s 1176x2136 pixels, and then render it across two GL_QUADs, using some clever UV’s, if you really really need it in one image, although i don’t know why you would…)

you can always create a singe ofImage to store the raw data at 588x4272 if you need pixel level access to it, but have another two ofImages to hold the split data and rendering using these.

… i assume then that you’re rendering across four viewports, each 588x1136? then it probably makes most sense to split it up into four parts, one for each viewport.

Actually, its a single image I’m having scroll down viewport thats 1024x768. At most ill be displaying an image 588x768 pixels in size. The problem is, most of this image is being rendered outside the frame, and is not displaying.

I agree with your suggestion on the use of three different images (the whole and then the two halves). The split image method allows me to do the necessary displaying of the data in a more manageable way, my uses for the actual raw pixel data are unrelated to the rendering of the image. My worry was that it was the ofImage itself being overloaded, that in fact the pixel data was not retrievable in one place, rather than it being a video card problem.

Thanks for the help,
DC

I’ll show off the results when I get it written. [/quote]