public ActionResult MultiArt(int id, int hue = 0) { DeleteTempFiles(System.Web.HttpContext.Current); Files.SetMulPath(HttpContext.Server.MapPath("~/mul")); Bitmap bmp = new Bitmap(Multis.GetComponents(id).GetImage()); if (hue > 0 && hue <= 3000) { short[] colors = Hues.GetHue(hue).Colors; Hues.ApplyTo(bmp, colors, (TileData.ItemTable[id].Flags & TileFlag.PartialHue) != 0); } byte[] byteArray = ImageToByte(bmp); using (Image image = Image.FromStream(new MemoryStream(byteArray))) { image.Save(HttpContext.Server.MapPath("~/tempfiles/") + id + hue + ".png", ImageFormat.Png); } ViewBag.img = "/tempfiles/" + id + hue + ".png"; return(File(HttpContext.Server.MapPath("~/tempfiles/") + id + hue + ".png", "image/png")); }
/// <summary> /// Calculates the image displayed by the control /// </summary> private void CreateDisplay() { if (m_Image != null) { m_Image.Dispose(); } switch (m_Art) { case Art.Items: try { m_Image = new Bitmap(Ultima.Art.GetStatic(m_ArtIndex)); } catch { m_Image = null; } break; case Art.Gumps: try { m_Image = new Bitmap(Gumps.GetGump(m_ArtIndex)); } catch { m_Image = null; } break; case Art.NPCs: try { if (m_Animate) { m_Image = DoAnimation(); } else { var hue = m_Hue; var frames = Animations.GetAnimation(m_ArtIndex, 0, 1, ref hue, true, true); if (frames != null) { m_Image = new Bitmap(frames[0].Bitmap); } else { m_Image = null; } } } catch { m_Image = null; } break; } // // Hue // if (m_Hue > 0 && m_Image != null && m_Art != Art.Images) { if (m_Art != Art.NPCs || (m_Art == Art.NPCs && !m_Animate)) { var hue = Hues.GetHue(m_Hue - 1); if (hue != null) { Hues.ApplyTo(m_Image, hue.Colors, m_Art == Art.Gumps); } } } }