v9.7.2018.0421   支持运行时修改DAL连接字符串
大石头 编写于 2018-04-21 14:00:47
X
using System;
using System.Drawing;
using System.IO;
using NewLife.IO;
using XICO;

namespace XCoder
{
    class IcoHelper
    {
        public static Icon GetIcon(String name)
        {
            try
            {
                var src = FileSource.GetFileResource(null, "leaf.png");
                if (src == null) return null;

                using (var bmp = new Bitmap(src))
                {
                    using (var water = MakeWater(bmp, name, true))
                    {
                        var ms = new MemoryStream();
                        IconFile.Convert(water, ms, new Int32[] { 32 }, new Int32[] { 32 });
                        ms.Position = 0;

                        return new Icon(ms);
                    }
                }
            }
            catch { return null; }
        }

        static Image MakeWater(Image bmp, String txt, Boolean fitSize)
        {
            var brush = new SolidBrush(Color.FromArgb(255, 128, 0));

            if (fitSize && bmp.Width > 256)
                bmp = new Bitmap(bmp, 256, 256);
            else
                bmp = new Bitmap(bmp);

            if (!String.IsNullOrEmpty(txt))
            {
                var ft = new Font("微软雅黑", 96, FontStyle.Bold);

                var g = Graphics.FromImage(bmp);
                g.DrawString(txt, ft, brush, -23, 100);
                g.Dispose();
            }

            return bmp;
        }
    }
}