Пример #1
0
        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"));
        }
Пример #2
0
        /// <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);
                    }
                }
            }
        }