大可山博客[十年一日, GDI+,WPF, .Net图形图像]

WPF,WinForms,asp.net开发,图形图像处理系统研究 (Johnson Blog) [信奉:凡事靠自己] MSN:a3news(at)hotmail.com http://www.brawdraw.com

朱继山ID:johnsuna
411399次访问,排名115好友60人,关注者89
深圳报业集团问工网,技术总监
johnsuna的文章
原创 258 篇
翻译 1 篇
转载 44 篇
评论 460 篇
大可山(Johnson)的公告

MSN:a3news(at)hotmail.com,从2007年8月8日起笔名改为:大可山(以前叫阿山Net)
Q:329325120
[这段时间忙,尽量少问我问题。见谅!]
引用本人原作,请注明出处。
最近评论
cctvcomchn:好.
messageto:[这段时间忙,尽量少问我问题。见谅!]
引用本人原作,请注明出处。


------------------------
牛人
younixianzai:都看不懂哇~
younixianzai:都看不懂哇~
younixianzai:都看不懂哇~
文章分类
收藏
相册
Chinaphotoshop.Net
报业大厦外摄
程序截图
美丽的深圳
世界之窗
软件开发
你的灯亮着吗?(RSS)
图书出版
大溪水的博客(RSS)
图形图像
C#新型报表工具 XDesigner(RSS)
存档
软件项目交易
订阅我的博客
XML聚合  FeedSky
订阅到鲜果
订阅到Google
订阅到抓虾
订阅到BlogLines
订阅到Yahoo
订阅到GouGou
订阅到飞鸽
订阅到Rojo
订阅到newsgator
订阅到netvibes

原创 使用GDI+生成KnownColor列表收藏

新一篇: 简述WPF中的图像像素格式(PixelFormats) | 旧一篇: GDI+与WPF中的颜色简析

在写这篇“GDI+与WPF中的颜色简析”之前,我试着使用GDI+生成KnownColor列表。现将关键代码贴出来吧。

最终效果图:
KnownColorGDIPlus

现将关键代码:
         Bitmap m_Bitmap = null;
        protected override void OnPaint(PaintEventArgs e)
        {
            base.OnPaint(e);
            if (m_Bitmap != null)
            {
                Graphics g = e.Graphics;
                g.DrawImage(m_Bitmap, new Point(0, 0));
            }
        }

        private void btnTestColor_Click(object sender, EventArgs e)
        {
            int count = 0;
            foreach (string s in Enum.GetNames(typeof(KnownColor)))
            {
                count++;
            }

            int cols = 4;
            int rows = count / cols;
            if (count % rows > 0) rows++;

            int rectWidth = 100;
            int rectHeight = 30;
            int wordSpaceFromRect = 10;
            int rowSpace = 10;
            int marginTop = 20;
            int marginBottom = 20;

            int width = 300 * cols + 50;
            int height = (rectHeight + rowSpace) * rows + marginTop + marginBottom ;
            m_Bitmap = new Bitmap(width, height);

            Graphics g = Graphics.FromImage(m_Bitmap);
            g.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighQuality;
            g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
            g.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAliasGridFit;
            g.Clear(Color.White);
            Color someColor = Color.FromArgb(0);
            Color redShade = Color.FromArgb(255, 200, 0, 100);

            SolidBrush myBrush1;
            Font myFont = new Font("Arial", 12);
            int x = 20;
            int y = marginTop;

            for (int i = 0; i < count; i++ )
            {
                someColor = Color.FromKnownColor((KnownColor)i);
                myBrush1.Color = someColor;
                g.FillRectangle(myBrush1, x, y, rectWidth, rectHeight);
                g.DrawRectangle(Pens.Black, x, y, rectWidth, rectHeight);
                g.DrawString(someColor.ToString().Replace("Color [","").Replace("]",""), myFont, Brushes.Black, x + rectWidth + wordSpaceFromRect, y);
                if (i % cols == cols - 1)
                {
                    y += rectHeight + rowSpace;
                    x -= 300 * (cols - 1);
                }
                if (i % cols < cols - 1)
                {
                    x += 300;
                }
            }

            g.Dispose();

            this.Invalidate();
        }

发表于 @ 2007年08月27日 19:56:00|评论(loading...)|编辑

新一篇: 简述WPF中的图像像素格式(PixelFormats) | 旧一篇: GDI+与WPF中的颜色简析

评论

#wzbhbb 发表于2007-08-30 11:37:15  IP: 123.56.211.*
写的很好
发表评论  


当前用户设置只有注册用户才能发表评论。如果你没有登录,请点击登录
Csdn Blog version 3.1a
Copyright © 大可山(Johnson)