Code scheme for arrayed line programming, but collecting for one big scan?

That shiftout function will definitely help, and my apologies for being a little squirley with my explanation, but here is some clarity on it:

The reason why I am using the 8x8 matrix in direct drive to the chip is because of cost reduction (negative switched with transistors). I have countered the amount of pins needed to use the matrix by using the Atmega32L (40pins, 32 I/O, 8 analog capable). Basically I am trying to achieve a much cheaper alternative to the Meggy Jr. not to be manufactured, but built as a beginner's avr project, and to be used for more than just games. It would be a diy development platform, and to be scalable with a maximum cost of $50

Here is a flow chart of what I want to do.

I want to use a numerical form of an array to be used as a sort of compression scheme for creating images to be used on the screen.
I want to convert the numerical array into a binary array for ease of editing in code of movement and effects.
I want to then convert the binary array to a form that can be used to write the pins to light the led matrix.

I know it's not efficient and basically an abomination in the world of programming, however it makes it easier for me to visualize, and there is enough horsepower in the Atmega32L to power this sort of coding scheme. Basically it's a tradeoff of wasting memory space to save coding time and smaller app space later.

What my actual question is (sorry I couldn't see the forest from the trees earlier so I forgot to actually include my question) is how to convert these arrays between the numerical and binary.