RenderImageResized() public static méthode

public static RenderImageResized ( Graphics gr, Image image, Rectangle targetRectangle ) : void
gr Graphics
image Image
targetRectangle Rectangle
Résultat void
Exemple #1
0
        private void RefreshHUD(double lifePercentage, double manaPercentage)
        {
            lifePercentage = lifePercentage.ClampPercentage();
            manaPercentage = manaPercentage.ClampPercentage();
            Bitmap bitmap = new Bitmap(pictureBox.Size.Width, pictureBox.Size.Height);

            int width  = bitmap.Width;
            int height = bitmap.Height;

            using (Graphics gr = Graphics.FromImage(bitmap)) {
                // we set the interpolation mode to nearest neighbor because other interpolation modes modify the colors
                // which causes the transparency key to appear around the edges of the object

                gr.Clear(StyleManager.BlendTransparencyKey);
                Rectangle lifeRectangle = new Rectangle();
                lifeRectangle.X      = (int)(height * 0.7);
                lifeRectangle.Y      = (int)(height * 0.15) - 2;
                lifeRectangle.Width  = width - lifeRectangle.X;
                lifeRectangle.Height = (int)(height * 0.2) + 4;

                gr.FillRectangle(Brushes.Black, lifeRectangle);
                lifeRectangle.Y      += 2;
                lifeRectangle.Height -= 4;
                lifeRectangle.Width   = (int)(lifeRectangle.Width * lifePercentage) - 2;
                using (Brush brush = new SolidBrush(StyleManager.GetHealthColor(lifePercentage))) {
                    gr.FillRectangle(brush, lifeRectangle);
                }

                Rectangle manaRectangle = new Rectangle();
                manaRectangle.X      = (int)(height * 0.7);
                manaRectangle.Y      = (int)(height * 0.15) - 2 + lifeRectangle.Height + 2;
                manaRectangle.Width  = (int)((width - lifeRectangle.X) * 0.95);
                manaRectangle.Height = (int)(height * 0.2) + 4;

                gr.FillRectangle(Brushes.Black, manaRectangle);
                manaRectangle.Y      += 2;
                manaRectangle.Height -= 4;
                manaRectangle.Width   = (int)(manaRectangle.Width * manaPercentage) - 2;
                using (Brush brush = new SolidBrush(StyleManager.ManaColor)) {
                    gr.FillRectangle(brush, manaRectangle);
                }

                int backgroundSize       = (int)(height * backgroundScale / 100.0);
                int backgroundBaseOffset = (height - backgroundSize) / 2;
                int centerSize           = (int)(height * centerScale / 100.0);
                int centerBaseOffset     = (height - centerSize) / 2;

                SummaryForm.RenderImageResized(gr, backgroundImage, new Rectangle(backgroundBaseOffset + backgroundOffset.X, backgroundBaseOffset + backgroundOffset.Y, backgroundSize, backgroundSize));
                SummaryForm.RenderImageResized(gr, centerImage, new Rectangle(centerBaseOffset + centerOffset.X, centerBaseOffset + centerOffset.Y, centerSize, centerSize));

                Rectangle levelRect = new Rectangle((int)(height * 0.7), (int)(height * 0.6), (int)(height * 0.35), (int)(height * 0.35));
                using (Brush brush = new SolidBrush(StyleManager.MainFormButtonColor)) {
                    gr.FillEllipse(brush, levelRect);
                }
                using (Pen pen = new Pen(StyleManager.MainFormButtonForeColor, 2)) {
                    gr.DrawEllipse(pen, levelRect);
                }
                using (Brush brush = new SolidBrush(StyleManager.MainFormButtonForeColor)) {
                    string level = MemoryReader.Level.ToString();
                    gr.DrawString(level, StyleManager.MainFormLabelFont, brush, new PointF(height * (0.725f + (3 - level.Length) * 0.0375f), height * 0.7f));
                }
            }
            bitmap.MakeTransparent(StyleManager.TransparencyKey);
            Image oldImage = pictureBox.Image;

            pictureBox.Image = bitmap;
            if (oldImage != null)
            {
                lock (oldImage) {
                    oldImage.Dispose();
                }
            }
        }
Exemple #2
0
        private void RefreshHUD()
        {
            float  life   = lifePercentage.ClampPercentage();
            float  mana   = manaPercentage.ClampPercentage();
            Bitmap bitmap = new Bitmap(pictureBox.Size.Width, pictureBox.Size.Height);

            int width  = bitmap.Width;
            int height = bitmap.Height;

            using (Graphics gr = Graphics.FromImage(bitmap)) {
                // we set the interpolation mode to nearest neighbor because other interpolation modes modify the colors
                // which causes the transparency key to appear around the edges of the object

                gr.Clear(StyleManager.BlendTransparencyKey);
                Rectangle lifeRectangle = new Rectangle();
                lifeRectangle.X      = (int)(height * 0.7);
                lifeRectangle.Y      = (int)(height * 0.15) - 2;
                lifeRectangle.Width  = width - lifeRectangle.X;
                lifeRectangle.Height = (int)(height * 0.2) + 4;

                gr.FillRectangle(Brushes.Black, lifeRectangle);
                lifeRectangle.Y      += 2;
                lifeRectangle.Height -= 4;
                lifeRectangle.Width   = (int)(lifeRectangle.Width * life) - 2;
                using (Brush brush = new SolidBrush(StyleManager.GetHealthColor(life))) {
                    gr.FillRectangle(brush, lifeRectangle);
                }

                Rectangle manaRectangle = new Rectangle();
                manaRectangle.X      = (int)(height * 0.7);
                manaRectangle.Y      = (int)(height * 0.15) - 2 + lifeRectangle.Height + 2;
                manaRectangle.Width  = (int)((width - lifeRectangle.X) * 0.95);
                manaRectangle.Height = (int)(height * 0.2) + 4;

                gr.FillRectangle(Brushes.Black, manaRectangle);
                manaRectangle.Y      += 2;
                manaRectangle.Height -= 4;
                manaRectangle.Width   = (int)(manaRectangle.Width * mana) - 2;
                using (Brush brush = new SolidBrush(StyleManager.ManaColor)) {
                    gr.FillRectangle(brush, manaRectangle);
                }

                int backgroundSize       = (int)(height * backgroundScale / 100.0);
                int backgroundBaseOffset = (height - backgroundSize) / 2;
                int centerSize           = (int)(height * centerScale / 100.0);
                int centerBaseOffset     = (height - centerSize) / 2;

                using (Brush brush = new SolidBrush(this.TransparencyKey)) {
                    gr.FillEllipse(brush, new Rectangle(backgroundBaseOffset + backgroundOffset.X, backgroundBaseOffset + backgroundOffset.Y, backgroundSize, backgroundSize));
                }
                using (Pen pen = new Pen(Color.Black, 5)) {
                    gr.DrawEllipse(pen, new Rectangle(backgroundBaseOffset + backgroundOffset.X, backgroundBaseOffset + backgroundOffset.Y, backgroundSize, backgroundSize));
                }

                //SummaryForm.RenderImageResized(gr, backgroundImage, new Rectangle(backgroundBaseOffset + backgroundOffset.X, backgroundBaseOffset + backgroundOffset.Y, backgroundSize, backgroundSize));
                SummaryForm.RenderImageResized(gr, centerImage, new Rectangle(centerBaseOffset + centerOffset.X, centerBaseOffset + centerOffset.Y, centerSize, centerSize));
            }
            bitmap.MakeTransparent(StyleManager.TransparencyKey);
            Image oldImage = pictureBox.Image;

            pictureBox.Image = bitmap;
            if (oldImage != null)
            {
                lock (oldImage) {
                    oldImage.Dispose();
                }
            }
        }