internal override bool ParseNodeBodyElement(string id, VRMLParser parser) { if (id == "avatarSize") { if (wasAvatarSize) { AvatarSize.AddRange(parser.ParseSFFloatOrMFFloatValue()); } else { AvatarSize = parser.ParseSFFloatOrMFFloatValue(); } wasAvatarSize = true; } else if (id == "headlight") { Headlight = parser.ParseBoolValue(); } else if (id == "speed") { Speed = parser.ParseDoubleValue(); } else if (id == "transitionTime") { TransitionTime = parser.ParseDoubleValue(); } else if (id == "transitionType") { if (wasTransitionType) { TransitionType.AddRange(parser.ParseSFStringOrMFStringValue()); } else { TransitionType = parser.ParseSFStringOrMFStringValue(); } wasTransitionType = true; } else if (id == "type") { if (wasType) { Type.AddRange(parser.ParseSFStringOrMFStringValue()); } else { Type = parser.ParseSFStringOrMFStringValue(); } wasType = true; } else if (id == "visibilityLimit") { VisibilityLimit = parser.ParseDoubleValue(); } else { return(false); } return(true); }
/// <summary> /// Try to get the avatar immediately. This should work for people on your friends list. /// </summary> public Image GetCachedAvatar(AvatarSize size, ulong steamid) { var imageid = 0; switch (size) { case AvatarSize.Small: imageid = client.native.friends.GetSmallFriendAvatar(steamid); break; case AvatarSize.Medium: imageid = client.native.friends.GetMediumFriendAvatar(steamid); break; case AvatarSize.Large: imageid = client.native.friends.GetLargeFriendAvatar(steamid); break; } var img = new Image() { Id = imageid }; if (imageid != 0 && img.TryLoad(client.native.utils)) { return(img); } return(null); }
public static string GetAvatarUrl(string avatar, AvatarSize size, FromType fromType) { if (string.IsNullOrWhiteSpace(avatar) || avatar == "default.png") { return(null); } else { switch (fromType) { case FromType.User: { string ext = Path.GetExtension(avatar); string name = Path.GetFileNameWithoutExtension(avatar); return(DataSource.ApiUserMeData.Config.Box.AvatarUrl + name + "_" + (int)size + "x" + (int)size + ext); } case FromType.Service: case FromType.Addition: return(DataSource.ApiUserMeData.Config.Box.ServiceUrl + avatar); default: throw new NotImplementedException(); } } }
/// <summary> /// Retrieve the avatar of the specified user in the specified format. /// </summary> /// <param name="user">User</param> /// <param name="size">Requested avatar size</param> /// <returns>The avatar as bitmap on success or null on failure.</returns> public Bitmap GetUserAvatar(User user, AvatarSize size = AvatarSize.Small) { if (user.avatarUrl.Length == 0) { return(null); } try { WebClient client = new WebClient(); Stream stream; if (size == AvatarSize.Small) { stream = client.OpenRead(user.avatarUrl + ".jpg"); } else if (size == AvatarSize.Medium) { stream = client.OpenRead(user.avatarUrl + "_medium.jpg"); } else { stream = client.OpenRead(user.avatarUrl + "_full.jpg"); } Bitmap avatar = new Bitmap(stream); stream.Flush(); stream.Close(); return(avatar); } catch (Exception e) { return(null); } }
/// <summary> /// Tries to get the steam avatar of the specified user. /// /// Only returns the image for users that the local user knows. /// </summary> /// <param name="steamId">The <see cref="CSteamID"/> of the steam user to get the image for</param> /// <param name="size">The <see cref="AvatarSize"/> to get</param> /// <returns></returns> public Texture2D GetAvatar(CSteamID steamId, AvatarSize size = AvatarSize.Medium) { SteamworksImage image; try { image = GetAvatarFromStreamApi(size, steamId); } catch (SystemException e) { // If there was an error getting the image from steam then return the fallback image. return(fallbackImage); } var texture = new Texture2D((int)image.Width, (int)image.Height); for (int x = 0; x < image.Width; x++) { for (int y = 0; y < image.Height; y++) { var pixel = image.GetPixel(x, y); texture.SetPixel(x, (int)image.Height - y, pixel); } } texture.Apply(); return(texture); }
/// <summary> /// 获取头像地址 /// </summary> /// <param name="uid">用户Id</param> /// <param name="avatarSize">头像大小,1:大,2:中,3:小</param> /// <returns></returns> public static string GetAvatarUrl(string uid, AvatarSize avatarSize) { uid = FormatUid(uid); string size = ""; switch (avatarSize) { case AvatarSize.Large: size = "large"; break; case AvatarSize.Medium: size = "medium"; break; case AvatarSize.Small: size = "small"; break; } string physicsAvatarPath = string.Format(AVATAR_URL, uid.Substring(0, 3), uid.Substring(3, 2), uid.Substring(5, 2), uid.Substring(7, 2), size); //当支持FTP上传头像时,使用FTP上传远程头像 if (FTPs.GetForumAvatarInfo.Allowupload == 1) { return(FTPs.GetForumAvatarInfo.Remoteurl.Trim('/') + "/avatars/" + physicsAvatarPath); } else { return(Utils.GetRootUrl(forumPath) + "avatars/" + physicsAvatarPath); } }
/// <summary> /// Callback will be called when the avatar is ready. If we fail to get an /// avatar, might be called with a null Image. /// </summary> public void GetAvatar(AvatarSize size, ulong steamid, Action <Image> callback) { // Maybe we already have it downloaded? var image = GetCachedAvatar(size, steamid); if (image != null) { callback(image); return; } // Lets request it from Steam if (!client.native.friends.RequestUserInformation(steamid, false)) { // Steam told us to get f****d callback(null); return; } PersonaCallbacks.Add(new PersonaCallback { SteamId = steamid, Size = size, Callback = callback, Time = DateTime.Now }); }
/// <summary> /// 获取头像地址 /// </summary> /// <param name="uid">用户Id</param> /// <param name="avatarSize">头像大小,1:大,2:中,3:小</param> /// <returns></returns> public static string GetAvatarUrl(string uid, AvatarSize avatarSize) { uid = FormatUid(uid); string size = ""; switch (avatarSize) { case AvatarSize.Large: size = "large"; break; case AvatarSize.Medium: size = "medium"; break; case AvatarSize.Small: size = "small"; break; } string physicsAvatarPath = string.Format(AVATAR_URL, uid.Substring(0, 3), uid.Substring(3, 2), uid.Substring(5, 2), uid.Substring(7, 2), size); return Utils.GetRootUrl(forumPath) + "avatars/" + physicsAvatarPath; //if (File.Exists(Utils.GetMapPath(forumPath + "avatars/" + physicsAvatarPath))) //{ // return Utils.GetRootUrl(forumPath) + "avatars/" + physicsAvatarPath; //} //else // return GetDefaultAvatarUrl(avatarSize); }
/// <summary> /// Retrieve the avatar of the specified group in the specified format. /// </summary> /// <param name="group">Group</param> /// <param name="size">Requested avatar size</param> /// <returns>The avatar as bitmap on success or null on failure.</returns> public Bitmap GetGroupAvatar(GroupInfo group, AvatarSize size = AvatarSize.Small) { User user = new User(); user.avatarUrl = group.avatarUrl; return(GetUserAvatar(user, size)); }
private string GetFilename(TdApi.File file, long id, AvatarSize size) { var s = (int)size; var name = file == null ? _colorMapper[id] : id.ToString(); return($"avatar_{s}x{s}_{name}.jpg"); }
private async Task GetSteamImage(SteamId steamId, AvatarSize size) { Steamworks.Data.Image?image; switch (size) { case AvatarSize.Small: image = await SteamFriends.GetSmallAvatarAsync(steamId); break; case AvatarSize.Medium: image = await SteamFriends.GetMediumAvatarAsync(steamId); break; case AvatarSize.Large: image = await SteamFriends.GetLargeAvatarAsync(steamId); break; default: throw new ArgumentException("Unknown Steam Avatar size!"); } if (image.HasValue) { LoadTextureFromImage(image.Value); } }
/// <summary> /// 获取头像地址 /// </summary> /// <param name="uid">用户id</param> /// <param name="avatarSize">图片尺寸</param> /// <returns>图片地址</returns> public static string GetAvatarUrl(int uid, AvatarSize avatarSize) { string size = ""; switch (avatarSize) { case AvatarSize.Large: size = "large"; break; case AvatarSize.Medium: size = "medium"; break; case AvatarSize.Small: size = "small"; break; } if (GeneralConfigs.GetConfig().AvatarMethod == 0) { return(string.Format("{0}tools/avatar.aspx?uid={1}&size={2}", Utils.GetRootUrl(Discuz.Config.BaseConfigs.GetForumPath), uid, size)); } else { return(Avatars.GetAvatarUrl(uid.ToString(), avatarSize)); } }
/// <summary> /// Retrieve the avatar of the specified group in the specified format. /// </summary> /// <param name="group">Group</param> /// <param name="size">Requested avatar size</param> /// <returns>The avatar as bitmap on success or null on failure.</returns> public Bitmap GetGroupAvatar(GroupInfo group, AvatarSize size = AvatarSize.Small) { var user = new User { AvatarUrl = @group.AvatarUrl }; return(GetUserAvatar(user, size)); }
public Avatar GetAvatar(AvatarKind kind, AvatarSize size) { return(new Avatar { Bitmap = null, Color = GetColor(kind), Label = GetLabel(kind) }); }
public async Task InsertOrUpdateAsync(int vkOwnerId, AvatarSize size, IEnumerable<IAvatar> avatars) { using (var context = new EFContext()) { if (avatars == null) throw new ArgumentNullException(nameof(avatars)); var newAvatars = avatars .Where(x => x.VkOwnerId == vkOwnerId && x.Size == size) .ToList(); var duplicatedAvatar = newAvatars.FirstOrDefault(x => newAvatars .Any(y => y.VkUserId == x.VkUserId && x != y)); if (duplicatedAvatar != null) throw new EFClientException<DuplicatedVkIdExceptionArgs>( new DuplicatedVkIdExceptionArgs(duplicatedAvatar.VkUserId), "В списке avatars имеются записи, с дублирующимся VkUserId"); var oldAvatars = await context.Avatars.Where(x => x.VkOwnerId == vkOwnerId && x.Size == size) .ToListAsync(); var oldAvatarIds = oldAvatars.Select(x => x.VkUserId).ToArray(); var avatarsToCreate = (from avatarToCreate in newAvatars where !oldAvatarIds.Contains(avatarToCreate.VkUserId) select new Avatar { Id = Guid.NewGuid(), VkOwnerId = vkOwnerId, VkUserId = avatarToCreate.VkUserId, Content = avatarToCreate.Content, Url = avatarToCreate.Url }); var queryToUpdate = (from avatarToUpdate in oldAvatars let newAvatar = newAvatars.FirstOrDefault(x => x.VkUserId == avatarToUpdate.VkUserId) where newAvatar != null select new {NewAvatar = newAvatar, AvatarToUpdate = avatarToUpdate}); foreach (var item in queryToUpdate) { var newAvatar = item.NewAvatar; var oldAvatar = item.AvatarToUpdate; oldAvatar.Url = newAvatar.Url; oldAvatar.Content = newAvatar.Content; } context.Avatars.AddRange(avatarsToCreate); await context.SaveChangesAsync(); } }
public static CroppedBitmap GetAvatarFrameFromStatus(UserStatus status, AvatarSize size) { int avatarFrameWidth = 0; if (status == UserStatus.Offline & size == AvatarSize.Big) { avatarFrameWidth = Resource.Images.Attributes.AVATAR_FRAME_STATUS_OFFLINE; } if (status == UserStatus.Busy & size == AvatarSize.Big) { avatarFrameWidth = Resource.Images.Attributes.AVATAR_FRAME_STATUS_BUSY; } if (status == UserStatus.Away & size == AvatarSize.Big) { avatarFrameWidth = Resource.Images.Attributes.AVATAR_FRAME_STATUS_AWAY; } if (status == UserStatus.Available & size == AvatarSize.Big) { avatarFrameWidth = Resource.Images.Attributes.AVATAR_FRAME_STATUS_AVAILABLE; } if (status == UserStatus.Offline & size == AvatarSize.Small) { avatarFrameWidth = Resource.Images.Attributes.AVATAR_FRAME_SMALL_STATUS_OFFLINE; } if (status == UserStatus.Busy & size == AvatarSize.Small) { avatarFrameWidth = Resource.Images.Attributes.AVATAR_FRAME_SMALL_STATUS_BUSY; } if (status == UserStatus.Away & size == AvatarSize.Small) { avatarFrameWidth = Resource.Images.Attributes.AVATAR_FRAME_SMALL_STATUS_AWAY; } if (status == UserStatus.Available & size == AvatarSize.Small) { avatarFrameWidth = Resource.Images.Attributes.AVATAR_FRAME_SMALL_STATUS_AVAILABLE; } if (size == AvatarSize.Big) { return(new CroppedBitmap(Images.BITMAP_AVATAR_FRAME, new Int32Rect(avatarFrameWidth, 0, Resource.Images.Attributes.AVATAR_FRAME_WIDTH, Resource.Images.Attributes.AVATAR_FRAME_HEIGHT))); } if (size == AvatarSize.Small) { return(new CroppedBitmap(Images.BITMAP_AVATAR_FRAME, new Int32Rect(avatarFrameWidth, 0, Resource.Images.Attributes.AVATAR_FRAME_SMALL_WIDTH, Resource.Images.Attributes.AVATAR_FRAME_SMALL_HEIGHT))); } return(null); }
public Avatar GetAvatar(TdApi.Chat chat, AvatarSize size, bool forceFallback = false) { return(new Avatar { Bitmap = forceFallback ? null : GetBitmap(chat.Photo?.Small, chat.Id, size), BrushFactory = GetBrushFactory(chat), Size = size, Label = GetLabel(chat) }); }
public Avatar GetAvatar(TdApi.User user, AvatarSize size, bool forceFallback = false) { return(new Avatar { Bitmap = forceFallback ? null : GetBitmap(user.ProfilePhoto?.Small, user.Id, size), BrushFactory = GetBrushFactory(user), Size = size, Label = GetLabel(user) }); }
public Avatar GetAvatar(TdApi.Chat chat, AvatarSize size) { int s = _platform.PixelDensity * (int)size; return(new Avatar { Bitmap = GetBitmap(chat.Photo?.Small, s), Color = GetColor(chat), Label = GetLabel(chat) }); }
public Avatar GetAvatar(TdApi.User user, AvatarSize size) { int s = _platform.PixelDensity * (int)size; return(new Avatar { Bitmap = GetBitmap(user.ProfilePhoto?.Small, s), Color = GetColor(user), Label = GetLabel(user) }); }
private IBitmap GetBitmap(TdApi.File file, long id, AvatarSize size) { var filename = GetFilename(file, id, size); if (_cache.TryGetValue(filename, out var bitmap)) { return((IBitmap)bitmap); } return(null); }
public IObservable <Avatar> LoadAvatar(TdApi.User user, AvatarSize size) { return(LoadBitmap(user.ProfilePhoto?.Small, user.Id, size) .Select(bitmap => new Avatar { Bitmap = bitmap, BrushFactory = GetBrushFactory(user), Size = size, Label = GetLabel(user) })); }
public IObservable <Avatar> LoadAvatar(TdApi.Chat chat, AvatarSize size) { return(LoadBitmap(chat.Photo?.Small, chat.Id, size) .Select(bitmap => new Avatar { Bitmap = bitmap, BrushFactory = GetBrushFactory(chat), Size = size, Label = GetLabel(chat) })); }
public IObservable <Avatar> LoadAvatar(TdApi.User user, AvatarSize size) { int s = _platform.PixelDensity * (int)size; return(LoadBitmap(user.ProfilePhoto?.Small, s) .Select(bitmap => new Avatar { Bitmap = bitmap, Color = GetColor(user), Label = GetLabel(user) })); }
public IObservable <Avatar> LoadAvatar(TdApi.Chat chat, AvatarSize size) { int s = _platform.PixelDensity * (int)size; return(LoadBitmap(chat.Photo?.Small, s) .Select(bitmap => new Avatar { Bitmap = bitmap, Color = GetColor(chat), Label = GetLabel(chat) })); }
public static TethysAvatar GetAvatar(MemberSession session, AvatarSize size) { return(new TethysAvatar { Id = session.Id, DisplayName = session.To.DisplayName, Background = AvatarHelper.GetColorBrush(session.To.DisplayName), DisplayNamePinyin = session.To.DisplayNamePinyin, Name = session.To.Name, Source = GetAvatarBitmap(session.To.Avatar, size, FromType.User) }); }
public static string ToAvatarUrl(this string avatarHash, AvatarSize size) { switch (size) { case AvatarSize.Portrait: return ToAvatarUrl(avatarHash, 170); case AvatarSize.Thumb: return ToAvatarUrl(avatarHash, 30); default: return ToAvatarUrl(avatarHash); } }
public static TethysAvatar GetAvatar(Member member, AvatarSize size) { return(new TethysAvatar { Id = member.Uid, DisplayName = member.DisplayName, Background = GetColorBrush(member.DisplayName), Source = GetAvatarBitmap(member.Avatar, size, FromType.User), Name = member.Name, DisplayNamePinyin = member.DisplayNamePinyin }); }
/// <summary> /// 检查头像是否存在 /// </summary> /// <param name="uid"></param> /// <param name="size"></param> /// <param name="type"></param> /// <returns></returns> public bool AvatarCheck(int uid, AvatarSize size = AvatarSize.Middle, AvatarType type = AvatarType.Virtual) { var args = new Dictionary <string, string> { { "uid", uid.ToString() }, { "size", size.ToString().ToLower() }, { "type", type.ToString().ToLower() }, { "check_file_exists", "1" } }; return(toBool(SendGet(UcConfig.UcApi + "avatar.php", args))); }
public static BitmapImage GetAvatarBitmap(string avatar, AvatarSize size, FromType fromType) { string url = GetAvatarUrl(avatar, size, fromType); if (string.IsNullOrWhiteSpace(url)) { return(null); } else { return(new BitmapImage(new Uri(url))); } }
public static string ToAvatarUrl(this string avatarHash, AvatarSize size) { switch (size) { case AvatarSize.Portrait: return(ToAvatarUrl(avatarHash, 170)); case AvatarSize.Thumb: return(ToAvatarUrl(avatarHash, 30)); default: return(ToAvatarUrl(avatarHash)); } }
/// <summary> /// Get image data from the Steam Api /// </summary> /// <param name="size">The image size to get from Steam</param> /// <param name="steamId">The steam id of the user to get the image for</param> /// <returns></returns> /// <exception cref="ArgumentException"></exception> /// <exception cref="SystemException"></exception> public SteamworksImage GetAvatarFromStreamApi(AvatarSize size, CSteamID steamId) { int imageHandle; switch (size) { case AvatarSize.Small: imageHandle = SteamFriends.GetSmallFriendAvatar(steamId); break; case AvatarSize.Medium: imageHandle = SteamFriends.GetMediumFriendAvatar(steamId); break; case AvatarSize.Large: imageHandle = SteamFriends.GetLargeFriendAvatar(steamId); break; default: throw new ArgumentException("Unknown Steam Avatar size!"); } if (imageHandle == -1 || imageHandle == 0) { throw new SystemException("Invalid Steamworks image handle"); } var image = new SteamworksImage(); if (!SteamUtils.GetImageSize(imageHandle, out image.Width, out image.Height)) { throw new SystemException("Couldn't get image size from Steamworks api"); } uint imageSize = image.Width * image.Height * 4; var buffer = new byte[imageSize]; if (!SteamUtils.GetImageRGBA(imageHandle, buffer, (int)imageSize)) { throw new SystemException("Couldn't get image data from Steamworks api"); } image.imageData = new byte[imageSize]; Array.Copy(buffer, 0, image.imageData, 0, imageSize); return(image); }
public static Avatar GetAvatar(string uid, AvatarSize size) { var member = DataSource.Team.Members.FirstOrDefault(m => m.Uid == uid); if (member == null) { return(null); } return(new Avatar { ProfilePicture = GetAvatarBitmap(member.Avatar, size, FromType.User), DisplayName = member.DisplayName, Initials = GetInitials(member.DisplayName) }); }
/// <summary> /// 获取头像地址 /// </summary> /// <param name="uid">用户Id</param> /// <param name="avatarSize">头像大小,1:大,2:中,3:小</param> /// <returns></returns> public static string GetAvatarUrl(string uid, AvatarSize avatarSize) { uid = FormatUid(uid); string size = ""; switch (avatarSize) { case AvatarSize.Large: size = "large"; break; case AvatarSize.Medium: size = "medium"; break; case AvatarSize.Small: size = "small"; break; } string physicsAvatarPath = string.Format(AVATAR_URL, uid.Substring(0, 3), uid.Substring(3, 2), uid.Substring(5, 2), uid.Substring(7, 2), size); return Utils.GetRootUrl(forumPath) + "avatars/" + physicsAvatarPath; }
/// <summary> /// 获取头像地址 /// </summary> /// <param name="uid">用户Id</param> /// <param name="avatarSize">头像大小,1:大,2:中,3:小</param> /// <returns></returns> public static string GetAvatarUrl(string uid, AvatarSize avatarSize) { uid = FormatUid(uid); string size = ""; switch (avatarSize) { case AvatarSize.Large: size = "large"; break; case AvatarSize.Medium: size = "medium"; break; case AvatarSize.Small: size = "small"; break; } string physicsAvatarPath = string.Format(AVATAR_URL, uid.Substring(0, 3), uid.Substring(3, 2), uid.Substring(5, 2), uid.Substring(7, 2), size); //当支持FTP上传头像时,使用FTP上传远程头像 if (FTPs.GetForumAvatarInfo.Allowupload == 1) return FTPs.GetForumAvatarInfo.Remoteurl.Trim('/') + "/avatars/" + physicsAvatarPath; else return Utils.GetRootUrl(forumPath) + "avatars/" + physicsAvatarPath; }
/// <summary> /// Retrieve the avatar of the specified group in the specified format. /// </summary> /// <param name="group">Group</param> /// <param name="size">Requested avatar size</param> /// <returns>The avatar as bitmap on success or null on failure.</returns> public Bitmap GetGroupAvatar(GroupInfo group, AvatarSize size = AvatarSize.Small) { User user = new User(); user.avatarUrl = group.avatarUrl; return GetUserAvatar(user, size); }
/// <summary> /// Retrieve the avatar of the specified user in the specified format. /// </summary> /// <param name="user">User</param> /// <param name="size">Requested avatar size</param> /// <returns>The avatar as bitmap on success or null on failure.</returns> public Bitmap GetUserAvatar(User user, AvatarSize size = AvatarSize.Small) { if (user.avatarUrl.Length == 0) return null; try { WebClient client = new WebClient(); Stream stream; if (size == AvatarSize.Small) stream = client.OpenRead(user.avatarUrl + ".jpg"); else if (size == AvatarSize.Medium) stream = client.OpenRead(user.avatarUrl + "_medium.jpg"); else stream = client.OpenRead(user.avatarUrl + "_full.jpg"); Bitmap avatar = new Bitmap(stream); stream.Flush(); stream.Close(); return avatar; } catch { Debug.Print("SteamAPI::GetUserAvatar exception"); return null; } }
public async Task<IAvatar> GetAvatarAsync(int vkUserId, int vkOwnerId, AvatarSize size) { using (var context = new EFContext()) { return await context.Avatars.FirstOrDefaultAsync(x => x.VkUserId == vkUserId && x.VkOwnerId == vkOwnerId && x.Size == size); } }
/// <summary> /// 获取头像物理路径 /// </summary> /// <param name="uid"></param> /// <param name="size"></param> /// <returns></returns> public static string GetPhysicsAvatarPath(string uid, AvatarSize size) { return Utils.GetMapPath(forumPath + "avatars/" + string.Format(AVATAR_URL, uid.Substring(0, 3), uid.Substring(3, 2), uid.Substring(5, 2), uid.Substring(7, 2), size.ToString().ToLower())); }
/// <summary> /// 获取默认头像 /// </summary> /// <param name="avatarSize"></param> /// <returns></returns> public static string GetDefaultAvatarUrl(AvatarSize avatarSize) { return Utils.GetRootUrl(forumPath) + "images/common/noavatar_" + avatarSize.ToString().ToLower() + ".gif"; }
/// <summary> /// 获取头像地址 /// </summary> /// <param name="uid">用户id</param> /// <param name="avatarSize">图片尺寸</param> /// <returns>图片地址</returns> public static string GetAvatarUrl(int uid, AvatarSize avatarSize) { string size = ""; switch (avatarSize) { case AvatarSize.Large: size = "large"; break; case AvatarSize.Medium: size = "medium"; break; case AvatarSize.Small: size = "small"; break; } if (GeneralConfigs.GetConfig().AvatarMethod == 0) return string.Format("{0}tools/avatar.aspx?uid={1}&size={2}", Utils.GetRootUrl(Discuz.Config.BaseConfigs.GetForumPath), uid, size); else return Avatars.GetAvatarUrl(uid.ToString(), avatarSize); }
/// <summary> /// Retrieve the avatar of the specified group in the specified format. /// </summary> /// <param name="group">Group</param> /// <param name="size">Requested avatar size</param> /// <returns>The avatar as bitmap on success or null on failure.</returns> public Bitmap GetGroupAvatar(GroupInfo group, AvatarSize size = AvatarSize.Small) { var user = new User {AvatarUrl = @group.AvatarUrl}; return GetUserAvatar(user, size); }
/// <summary> /// Retrieve the avatar of the specified user in the specified format. /// </summary> /// <param name="user">User</param> /// <param name="size">Requested avatar size</param> /// <returns>The avatar as bitmap on success or null on failure.</returns> public Bitmap GetUserAvatar(User user, AvatarSize size = AvatarSize.Small) { if (user.AvatarUrl.Length == 0) return null; try { var client = new WebClient(); Stream stream; if (size == AvatarSize.Small) stream = client.OpenRead(user.AvatarUrl + ".jpg"); else if (size == AvatarSize.Medium) stream = client.OpenRead(user.AvatarUrl + "_medium.jpg"); else stream = client.OpenRead(user.AvatarUrl + "_full.jpg"); if (stream == null) return null; var avatar = new Bitmap(stream); stream.Flush(); stream.Close(); return avatar; } catch (Exception) { return null; } }
/// <summary> /// 得到头像地址 /// </summary> /// <param name="uid">Uid</param> /// <param name="size">大小</param> /// <param name="type">类型</param> /// <returns></returns> public string AvatarUrl(decimal uid, AvatarSize size, AvatarType type = AvatarType.Virtual) { return string.Format("{0}avatar.php?uid={1}&type={2}&size={3}", UcConfig.UcApi, uid, type.ToString().ToLower(), size.ToString().ToLower()); }
/// <summary> /// 检查头像是否存在 /// </summary> /// <param name="uid"></param> /// <param name="size"></param> /// <param name="type"></param> /// <returns></returns> public bool AvatarCheck(decimal uid, AvatarSize size = AvatarSize.Middle, AvatarType type = AvatarType.Virtual) { var args = new Dictionary<string, string> { {"uid", uid.ToString()}, {"size", size.ToString().ToLower()}, {"type", type.ToString().ToLower()}, {"check_file_exists", "1"} }; return toBool(SendGet(UcConfig.UcApi + "avatar.php", args)); }