public AvatarFileEngine(string uri) { // uri begins with "avatar:/" m_AvatarHash = uri.Substring(8); QPixmap pixmap = (QPixmap)Synapse.Xmpp.AvatarManager.GetAvatar(m_AvatarHash); // FIXME: This doesn't seem very efficient... QBuffer buffer = new QBuffer(); buffer.Open((uint)QIODevice.OpenModeFlag.WriteOnly); pixmap.Save(buffer, "PNG"); buffer.Close(); m_Buffer = new byte[buffer.Size()]; Marshal.Copy(buffer.Data().Data().ToIntPtr(), m_Buffer, 0, m_Buffer.Length); }