[JDEV] Buddy Icon (Avatar) Proposal

Jens Alfke jens at mooseyard.com
Fri Aug 31 12:04:58 CDT 2001


[Sorry if this gets posted more than once; it bounced due to my sending 
it from the wrong account.]

On Friday, August 31, 2001, at 02:15 AM, Sebastiaan 'CBAS' Deckers wrote:

> What color depths should be allowed?

GIF is always 8-bit, JPEG always 24, PNG can be either. I'm not aware of 
any rendering implementations that have problems with different color 
depths. The blitter will just dither if necessary.

> Where's the bitmap support? You allow PNG but not BMP, doesn't seem 
> right.

All of these formats are bitmaps, just with different bit depths and 
compression schemes. All I know about BMP is that it's a venerable DOS 
file format, but what does it bring to the table that GIF/JPEG/PNG don't?

If you mean pure black-and-white, just use a GIF with a two-color color 
table.

> Why not use scalable graphics? Or if that's too much of a hassle, why 
> not
> have multiple sizes of the same icon available?

With scalable graphics I think the issue would be cross-platform 
rendering support. I think Flash is currently the most compatible vector 
format (but is there an X-windows implementation?) Adobe has SVG viewer 
plug-ins for a number of platforms but I don't know how easy they are to 
integrate into applications other than web browsers. And of course 
there's PDF, which is trivial to render on Mac OS X but probably more 
difficult on other platforms :-)

These would be nice as an option but we can hardly make it a 
requirement. Many people will want to grab a picture from a webcam or 
digital camera and import it as their buddy icon, which implies a bitmap 
format.

> You dropped MNG support, but is it ok to use animated GIF's? AVI/MPEG
> animations? (sounds? :-) )

Animations would be interesting. Definitely too obnoxious if they were 
always playing in your buddy list, but I could imagine the animation 
playing only while you moused over the icon, or in a chat window when a 
new message from that person appeared. GIF89 is very compatible and 
fairly compact. AVI/MPEG/QuickTime/etc. are all probably too large to be 
practical.

Sounds could be very useful if they were used as message alerts: 
whenever you get an IM from me (in a new thread) you hear my voice 
saying "Message from Jens!" (As a bonus this would teach people how to 
pronounce my name...) Uncompressed 8-bit 5KHz audio (telephone quality) 
runs 5kbytes/sec, which is OK for an announcement, and various codecs 
can make that even smaller.

To provide multiple types (including multiple pixel sizes of image 
types) we need a way for the receiver to find which types are available 
and to be able to request a specific type. The latter can be satisfied 
by storing each type in a separate sub-namespace (e.g. 
'jaber:iq:avatar:gif-48' for a 48x48 GIF) but without browse capability 
on the server you don't get the former. Perhaps that's acceptable 
degradation, though.

Thoughts?

--Jens




More information about the JDev mailing list