[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