This is a read-only archive of the old Scratch 1.x Forums.
Try searching the current Scratch discussion forums.

#1 2010-10-09 14:22:34

nXIII
Community Moderator
Registered: 2009-04-21
Posts: 1000+

Thumbnails! (AKA ObjStream form reading issues)

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)
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...  tongue )
oh, gosh, the data url didn't work  sad
copy this into a new browser window:

Code:

data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAAB4CAYAAAB1ovlvAAAAsUlEQVR4nO3SoRHCQABE0ZRx9mRkZGwkMjKWVpAnaYESIrEnkbRBCYuiAUyG4b2Z71fsUEvNNI5Zpimnec62lGzrmnYuubaWfinpe8uj9+RWkvuaPFvy6vmopUpfNRw9QP+dA+rQBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPg1bwOqnEOqc3svAAAAAElFTkSuQmCC

Any suggestions/incredibly obvious errors?

Last edited by nXIII (2010-10-21 17:28:54)


nXIII

Offline

 

#2 2010-10-09 16:16:49

nXIII
Community Moderator
Registered: 2009-04-21
Posts: 1000+

Re: Thumbnails! (AKA ObjStream form reading issues)

Bump!


nXIII

Offline

 

#3 2010-10-09 16:23:16

johnnydean1
Scratcher
Registered: 2010-02-12
Posts: 1000+

Re: Thumbnails! (AKA ObjStream form reading issues)

I dont know is it encrypted?


You can now reach me on Twitter @johnnydean1_

Offline

 

#4 2010-10-09 16:41:05

johnnydean1
Scratcher
Registered: 2010-02-12
Posts: 1000+

Re: Thumbnails! (AKA ObjStream form reading issues)

Maybe this can help


You can now reach me on Twitter @johnnydean1_

Offline

 

#5 2010-10-09 17:22:47

nXIII
Community Moderator
Registered: 2009-04-21
Posts: 1000+

Re: Thumbnails! (AKA ObjStream form reading issues)

No. I was asking people who knew about the format in which Forms were stored, because I can't find it in the source and don't know enough about Forms to do it myself.


nXIII

Offline

 

#6 2010-10-09 18:15:57

fullmoon
Retired Community Moderator
Registered: 2007-06-04
Posts: 1000+

Re: Thumbnails! (AKA ObjStream form reading issues)

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  wink


http://i302.photobucket.com/albums/nn100/fullmoon32/wow.jpg

Offline

 

#7 2010-10-09 18:18:21

fullmoon
Retired Community Moderator
Registered: 2007-06-04
Posts: 1000+

Re: Thumbnails! (AKA ObjStream form reading issues)

Okay, scratch that, it was an insane suggestion. Try double-checking the MIME type and encoding? I really have no idea.


http://i302.photobucket.com/albums/nn100/fullmoon32/wow.jpg

Offline

 

#8 2010-10-09 20:26:18

nXIII
Community Moderator
Registered: 2009-04-21
Posts: 1000+

Re: Thumbnails! (AKA ObjStream form reading issues)

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!  tongue


nXIII

Offline

 

#9 2010-11-15 13:13:49

MathWizz
Scratcher
Registered: 2009-08-31
Posts: 1000+

Re: Thumbnails! (AKA ObjStream form reading issues)

*bump* Scratch Team? Can you answer?


http://block.site90.net/scratch.mit/text.php?size=30&text=%20A%20signature!&color=333333

Offline

 

#10 2010-12-10 12:26:30

MathWizz
Scratcher
Registered: 2009-08-31
Posts: 1000+

Re: Thumbnails! (AKA ObjStream form reading issues)

*bump*


http://block.site90.net/scratch.mit/text.php?size=30&text=%20A%20signature!&color=333333

Offline

 

#11 2010-12-11 00:29:29

clintonb
Scratcher
Registered: 2010-05-27
Posts: 30

Re: Thumbnails! (AKA ObjStream form reading issues)

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.

Code:

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:

Code:

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

 

#12 2010-12-12 07:44:36

TheSuccessor
Scratcher
Registered: 2010-04-23
Posts: 1000+

Re: Thumbnails! (AKA ObjStream form reading issues)

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!


/* No comment */

Offline

 

Board footer