GetFixed() public static method

public static GetFixed ( int font ) : ASCIIFont
font int
return ASCIIFont
Beispiel #1
0
        public unsafe static Bitmap DrawText(int fontId, string text, short hueId)
        {
            ASCIIFont font = ASCIIFont.GetFixed(fontId);

            Bitmap result =
                new Bitmap(font.GetWidth(text), font.Height);
            BitmapData surface =
                result.LockBits(new Rectangle(0, 0, result.Width, result.Height), ImageLockMode.WriteOnly, PixelFormat.Format32bppArgb);

            int dx = 0;

            for (int i = 0; i < text.Length; ++i)
            {
                Bitmap bmp =
                    font.GetBitmap(text[i]);
                BitmapData chr =
                    bmp.LockBits(new Rectangle(0, 0, bmp.Width, bmp.Height), ImageLockMode.WriteOnly, PixelFormat.Format32bppArgb);

                for (int dy = 0; dy < chr.Height; ++dy)
                {
                    byte *src =
                        ((byte *)chr.Scan0) + (chr.Stride * dy);
                    byte *dest =
                        (((byte *)surface.Scan0) + (surface.Stride * (dy + (font.Height - chr.Height)))) + (dx << 2);

                    for (int k = 0; k < chr.Width; ++k)
                    {
                        *dest++ = *src++;
                        *dest++ = *src++;
                        *dest++ = *src++;
                        *dest++ = *src++;
                    }
                }

                dx += chr.Width;
                bmp.UnlockBits(chr);
            }

            result.UnlockBits(surface);

            hueId = (short)((hueId & 0x3FFF) - 1);
            if (hueId >= 0 && hueId < Hues.List.Length)
            {
                Hue hueObject = Hues.List[hueId];

                if (hueObject != null)
                {
                    hueObject.ApplyTo(result, ((hueId & 0x8000) == 0));
                }
            }

            return(result);
        }
Beispiel #2
0
        /// <summary>
        /// Draws Text with font in Bitmap and returns
        /// </summary>
        /// <param name="fontId"></param>
        /// <param name="text"></param>
        /// <returns></returns>
        public static Bitmap DrawText(int fontId, string text)
        {
            ASCIIFont font   = ASCIIFont.GetFixed(fontId);
            Bitmap    result = new Bitmap(font.GetWidth(text) + 2, font.Height + 2);

            int dx = 2;
            int dy = font.Height + 2;

            using (Graphics graph = Graphics.FromImage(result))
            {
                for (int i = 0; i < text.Length; ++i)
                {
                    Bitmap bmp = font.GetBitmap(text[i]);
                    graph.DrawImage(bmp, dx, dy - bmp.Height);
                    dx += bmp.Width;
                }
            }
            return(result);
        }
Beispiel #3
0
        /// <summary>
        /// Draws Text with font in Bitmap and returns
        /// </summary>
        /// <param name="fontId"></param>
        /// <param name="text"></param>
        /// <returns></returns>
        public static Bitmap DrawText(int fontId, string text)
        {
            ASCIIFont font   = ASCIIFont.GetFixed(fontId);
            var       result = new Bitmap(font.GetWidth(text) + 2, font.Height + 2);

            int dx = 2;
            int dy = font.Height + 2;

            using (Graphics graph = Graphics.FromImage(result))
            {
                foreach (var character in text)
                {
                    Bitmap bmp = font.GetBitmap(character);
                    graph.DrawImage(bmp, dx, dy - bmp.Height);
                    dx += bmp.Width;
                }
            }

            return(result);
        }