So, my JS ObjReader reads things pretty nicely, everything's great, but the forms are being read in a strange manner--the "bits" seem to be a color map and the physical bitmap is apparently nonexistent. For example, this is the output of my script for the thumbnail:
thumbnail: 160,120,8,,[Color r: 33 g: 24 b: 33 a: 255],[Color r: 49 g: 41 b: 41 a: 255],[Color r: 66 g: 49 b: 49 a: 255],[Color r: 74 g: 57 b: 57 a: 255],[Color r: 90 g: 66 b: 24 a: 255],[Color r: 90 g: 82 b: 82 a: 255],[Color r: 140 g: 99 b: 24 a: 255],[Color r: 148 g: 140 b: 140 a: 255],[Color r: 198 g: 132 b: 24 a: 255],[Color r: 198 g: 181 b: 140 a: 255],[Color r: 206 g: 198 b: 198 a: 255],[Color r: 255 g: 165 b: 24 a: 255],[Color r: 255 g: 189 b: 82 a: 255],[Color r: 255 g: 214 b: 140 a: 255],[Color r: 255 g: 239 b: 198 a: 255],[Color r: 255 g: 255 b: 255 a: 255],,[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],20,[Color r: 0 g: 0 b: 0 a: 0],31
(you can count 'em if you want, it's not 160x120 though)
and this is the rendered image, using the fourth array member as the bitmap:
[img]data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAAB4CAYAAAB1ovlvAAAAsUlEQVR4nO3SoRHCQABE0ZRx9mRkZGwkMjKWVpAnaYESIrEnkbRBCYuiAUyG4b2Z71fsUEvNNI5Zpimnec62lGzrmnYuubaWfinpe8uj9+RWkvuaPFvy6vmopUpfNRw9QP+dA+rQBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPg1bwOqnEOqc3svAAAAAElFTkSuQmCC[/img]
(data URL, let's hope it works...
)
oh, gosh, the data url didn't work
copy this into a new browser window:
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAAB4CAYAAAB1ovlvAAAAsUlEQVR4nO3SoRHCQABE0ZRx9mRkZGwkMjKWVpAnaYESIrEnkbRBCYuiAUyG4b2Z71fsUEvNNI5Zpimnec62lGzrmnYuubaWfinpe8uj9+RWkvuaPFvy6vmopUpfNRw9QP+dA+rQBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPg1bwOqnEOqc3svAAAAAElFTkSuQmCC
Any suggestions/incredibly obvious errors?
Last edited by nXIII (2010-10-21 17:28:54)
Offline
I dont know is it encrypted?
Offline
Maybe this can help
Offline
This sounds a little ridiculous, but you could create a parser that reads the string output of the form reader script and actually create a bitmap in Javascript? The output looks awfully easy to parse, and there's a nifty JS bitmap API here: http://neil.fraser.name/software/bmp_lib/. But I'm sure there's a much better way

Offline
Well, the output from my script is just so it's readable. I have it all stored in arrays, too. The problem is that I simply don't know where the bitmap is. I've lost the bitmap!
Offline
nXIII wrote:
So, my JS ObjReader reads things pretty nicely, everything's great, but the forms are being read in a strange manner--the "bits" seem to be a color map and the physical bitmap is apparently nonexistent. For example, this is the output of my script for the thumbnail:
Code:
thumbnail: 160,120,8,,[Color r: 33 g: 24 b: 33 a: 255],[Color r: 49 g: 41 b: 41 a: 255],[Color r: 66 g: 49 b: 49 a: 255],[Color r: 74 g: 57 b: 57 a: 255],[Color r: 90 g: 66 b: 24 a: 255],[Color r: 90 g: 82 b: 82 a: 255],[Color r: 140 g: 99 b: 24 a: 255],[Color r: 148 g: 140 b: 140 a: 255],[Color r: 198 g: 132 b: 24 a: 255],[Color r: 198 g: 181 b: 140 a: 255],[Color r: 206 g: 198 b: 198 a: 255],[Color r: 255 g: 165 b: 24 a: 255],[Color r: 255 g: 189 b: 82 a: 255],[Color r: 255 g: 214 b: 140 a: 255],[Color r: 255 g: 239 b: 198 a: 255],[Color r: 255 g: 255 b: 255 a: 255],,[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],[Color r: 33 g: 24 b: 33 a: 255],20,[Color r: 0 g: 0 b: 0 a: 0],31(you can count 'em if you want, it's not 160x120 though)
nXIII,
Here's the code (ObjStream>>putForm:id) that serializes the Form.
putForm: anObject id: classID
firstPass ifFalse: [stream nextPut: classID].
anObject hibernate.
self putField: anObject width.
self putField: anObject height.
self putField: anObject depth.
self putField: anObject privateOffset.
self putField: anObject bits.
(anObject class = ColorForm) ifTrue: [self putField: anObject colors].Your decoded output starts:
thumbnail: 160,120,8,,[Color r: 33 g: 24 b: 33 a: 255],
thumnail is the class (indicates by a field before this -- [by the way, and totally tangentally, are the class indicators one byte, or more? Do you happen to know if I can use a class identifier that is greater than 255, contrary to the comments?]) -- which class is it, exactly? ScratchThumbnailMorph comes off of Morph, and none of the descendants of Form are called Thumbnail.
width: 160
height: 120
depth: 8
private offset: ?
bits: ?
Then we have 256 Color entries. What you are looking at is the colour palette for the bitmap.
(I have no idea how much you know about 8-bit color; if you know all about it, skip this next section).
An eight-bit picture is done like a paint-by-numbers painting. Everywhere that it says '1', you fill in with red; everywhere it says '2', you fill in with blue, and so on, according to the colour chart that comes with the painting. The numbers that form the actual bitmap are just indices into a colour lookup table, called the palette. In 8 bits, you can store 256 numbers; as such, you need to provide 256 colours that those numbers can represent.
For example, if we had a (super simplified) palette like this:
[0 = transparent] [1 = red] [2 = blue] [3 = white]
and image data like this:
1 0 0 0
1 2 2 0
1 2 2 0
1 1 1 0
(and assuming that the image was 4 x 4), we have a red 'L' shape, a blue square, and a transparent background. A better explanation can be found at http://en.wikipedia.org/wiki/Indexed_color .
In any event, there are two items that are not filled in -- the private offset (I have no idea what that is) and the 'bits' field, which is the actual bitmap -- according to the class comment on Form, which says in part:
A rectangular array of pixels, used for holding images. All pictures, including character images are Forms. The depth of a Form is how many bits are used to specify the color at each pixel. The actual bits are held in a Bitmap, whose internal structure is different at each depth. Class Color allows you to deal with colors without knowing how they are actually encoded inside a Bitmap.
The supported depths (in bits) are 1, 2, 4, 8, 16, and 32. The number of actual colors at these depths are: 2, 4, 16, 256, 32768, and 16 million.Is your parser reading those fields and simply not outputting anything for them?
By the way, neat trick with the data url -- I had no idea I could paste something like that into my browser bar and see an image.
Offline
clintonb wrote:
By the way, neat trick with the data url -- I had no idea I could paste something like that into my browser bar and see an image.
It doesn't just work with images; you can put the source of a flash movie after data:application/x-shockwave-flash; and it will display the flash movie!
Offline