/// <summary> /// Entry point for re-drawing based on updated portrait. /// </summary> private void drawPortrait() { Graphics g = Graphics.FromImage(previewImage); logger.Debug("Clearing preview."); g.Clear(Color.Empty); try { Bitmap portraitImage = portraitRenderer.DrawPortrait(portrait, loader.GetActiveContents(), loader.GetActivePortraitData().Sprites); g.DrawImage(portraitImage, 0, 0); } catch (Exception e) { logger.Error("Error encountered rendering portrait", e); return; } pbPortrait.Image = previewImage; }
/// <summary> /// Entry point for re-drawing based on updated portrait. /// </summary> private void drawPortrait() { pbPortrait.Image?.Dispose(); try { var steps = PortraitBuilder.Engine.PortraitBuilder.BuildCharacter(character, loader.ActivePortraitData.Sprites) .Where(step => step != null) .Select(step => { step.Tile = loader.Cache.Get(step.Def)[step.TileIndex]; return(step); }); var rendered = PortraitRenderer.DrawPortrait(steps); previewImage = SKImage.FromBitmap(rendered); } catch (Exception e) { logger.LogError("Error encountered rendering portrait", e); return; } pbPortrait.Image = Image.FromStream(previewImage.Encode().AsStream(true)); if (!this.Visible) { return; } var fullUrl = GetOnlinePortraitUrl(); logger.LogInformation("Rendering remote portrait: " + fullUrl); lnkLblRemotePortrait.Text = fullUrl; pbPortraitOnline.ImageLocation = fullUrl; }