private Image <Rgba32> GetProfileInside(IUserInfo shindenUser, User botUser) { var image = new Image <Rgba32>(325, 272); if (botUser.ProfileType == ProfileType.Img && !File.Exists(botUser.StatsReplacementProfileUri)) { botUser.ProfileType = ProfileType.Stats; } switch (botUser.ProfileType) { case ProfileType.Stats: case ProfileType.StatsWithImg: if (shindenUser != null) { if (shindenUser?.ListStats?.AnimeStatus != null) { using (var stats = GetRWStats(shindenUser?.ListStats?.AnimeStatus, "./Pictures/statsAnime.png", shindenUser.GetMoreSeriesStats(false))) { image.Mutate(x => x.DrawImage(stats, new Point(0, 2), 1)); } } if (shindenUser?.ListStats?.MangaStatus != null) { using (var stats = GetRWStats(shindenUser?.ListStats?.MangaStatus, "./Pictures/statsManga.png", shindenUser.GetMoreSeriesStats(true))) { image.Mutate(x => x.DrawImage(stats, new Point(0, 142), 1)); } } if (botUser.ProfileType == ProfileType.StatsWithImg) { goto case ProfileType.Img; } } break; case ProfileType.Img: { using (var userBg = Image.Load(botUser.StatsReplacementProfileUri)) { image.Mutate(x => x.DrawImage(userBg, new Point(0, 0), 1)); } } break; } return(image); }
public async Task <Image <Rgba32> > GetSiteStatisticAsync(IUserInfo shindenInfo, Discord.Color color, List <ILastReaded> lastRead = null, List <ILastWatched> lastWatch = null) { if (color == Discord.Color.Default) { color = Discord.Color.DarkerGrey; } var baseImg = new Image <Rgba32>(500, 320); baseImg.Mutate(x => x.BackgroundColor(Rgba32.FromHex("#36393e"))); using (var template = Image.Load("./Pictures/siteStatsBody.png")) { baseImg.Mutate(x => x.DrawImage(template, new Point(0, 0), 1)); } using (var avatar = await GetSiteStatisticUserBadge(shindenInfo.AvatarUrl, shindenInfo.Name, color.RawValue.ToString("X6"))) { baseImg.Mutate(x => x.DrawImage(avatar, new Point(0, 0), 1)); } using (var image = new Image <Rgba32>(325, 248)) { if (shindenInfo?.ListStats?.AnimeStatus != null) { using (var stats = GetRWStats(shindenInfo?.ListStats?.AnimeStatus, "./Pictures/statsAnime.png", shindenInfo.GetMoreSeriesStats(false))) { image.Mutate(x => x.DrawImage(stats, new Point(0, 0), 1)); } } if (shindenInfo?.ListStats?.MangaStatus != null) { using (var stats = GetRWStats(shindenInfo?.ListStats?.MangaStatus, "./Pictures/statsManga.png", shindenInfo.GetMoreSeriesStats(true))) { image.Mutate(x => x.DrawImage(stats, new Point(0, 128), 1)); } } baseImg.Mutate(x => x.DrawImage(image, new Point(5, 71), 1)); } using (var image = await GetLastRWList(lastRead, lastWatch)) { baseImg.Mutate(x => x.DrawImage(image, new Point(330, 69), 1)); } return(baseImg); }