If you've got R, then this is pretty simple using either the 'affy' or 'oligo' packages. Other packages will give the same functionality as well, I'm sure.
E.g. using 'oligo' ...
library(oligo)
setwd(choose.dir(default = "", caption = "Path of directory containing .cel files: "))
celFiles <- read.celfiles(list.celfiles(getwd(), full.names=TRUE))
for (i in 1:length(sampleNames(celFiles))) {
fname = sampleNames(celFiles)[i]
png(filename=paste(substr(fname, 1, nchar(fname)-4), '.png', sep=''), width=5000, height=5000)
image(celFiles[,i], col=gray((64:0)/64))
dev.off()
}
In other words: we already have a CEL viewer - the image() function.
Most visual representations of arrays are grayscale, since the variable of interest is brightness. I don't think that RGB is required for intensity.