| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1758 人关注过本帖
标题:请问:怎样在Paint以外的函数画线?
只看楼主 加入收藏
chinshin
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2008-8-31
收藏
 问题点数:0 回复次数:12 
请问:怎样在Paint以外的函数画线?
我在其它函数里定义不了PaintEventArgs e,画不了线!
应该怎么做才画得了?大家帮帮忙!
搜索更多相关主题的帖子: Paint 函数 
2008-09-02 13:21
hellson
Rank: 2
来 自:北京
等 级:新手上路
威 望:4
帖 子:195
专家分:0
注 册:2008-9-1
收藏
得分:0 
程序代码:
       using System.Drawing;
       private void button1_Click(object sender, EventArgs e)
        {
            Graphics g = CreateGraphics();
            Pen pen = new Pen(Color.Red, 1);
            g.DrawLine(pen, 50,50,100,100);
            pen.Dispose();
            g.Dispose();
        }


这样不行么?

[[it] 本帖最后由 hellson 于 2008-9-2 13:28 编辑 [/it]]
2008-09-02 13:26
chinshin
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2008-8-31
收藏
得分:0 
谢谢!可以了!
我是要在时间函数里清一次线再画一次线!
请问清除线应该怎么搞?用什么函数?
2008-09-02 13:47
hellson
Rank: 2
来 自:北京
等 级:新手上路
威 望:4
帖 子:195
专家分:0
注 册:2008-9-1
收藏
得分:0 
Graphics g = CreateGraphics();//System.Drawing.Graphics g = this.CreateGraphics();
            g.Clear(Color.White);



或者背景色覆盖线重新画一次

[[it] 本帖最后由 hellson 于 2008-9-2 13:56 编辑 [/it]]
2008-09-02 13:53
chinshin
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2008-8-31
收藏
得分:0 
非常感谢!
我做的那个有背景图的!g.Clear(Color.White);这个连背景都清了,不行!
应该怎样搞背景再覆盖呢?用什么函数呢?
2008-09-02 14:07
hellson
Rank: 2
来 自:北京
等 级:新手上路
威 望:4
帖 子:195
专家分:0
注 册:2008-9-1
收藏
得分:0 
如果现在显示的图形把背景改变较少,把背景覆盖回来,重新改变……
如果改变较多,你就把背景取一小部分覆盖回来吧 代码来了:

程序代码:
            Bitmap bmp = new Bitmap("1.bmp");
            PixelFormat format = bmp.PixelFormat;
            RectangleF cloneRect = new RectangleF(50, 50, 10, 10);// 取图片的一块
            Bitmap pic = bmp.Clone(cloneRect, format);
            Graphics g = CreateGraphics();
            g.DrawImage(pic, 50, 50, pic.Width, pic.Height,GraphicsUnit.Pixel, null);
            // 在50,50的位置上贴 pic,注意最后一个属性为 ImageAttributes 对象的透明色,也就是 pic 的透明度


忘了加表情了。。

[[it] 本帖最后由 hellson 于 2008-9-2 14:46 编辑 [/it]]
2008-09-02 14:43
chinshin
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2008-8-31
收藏
得分:0 
再次感谢!
g.DrawImage(pic, 50, 50, pic.Width, pic.Height,GraphicsUnit.Pixel, null);
错误:
参数二:无法从“int”转换为“System.Drawing.PointF[]”
其它的参数也不能转型!!!是不是参数对错了!!应该怎样改呢?
2008-09-02 14:59
hellson
Rank: 2
来 自:北京
等 级:新手上路
威 望:4
帖 子:195
专家分:0
注 册:2008-9-1
收藏
得分:0 
g.DrawImage(bmp, 50, 50);

DrawImage(Image, Rectangle, Int32, Int32, Int32, Int32, GraphicsUnit, ImageAttributes)
我写得确实不对,现在看不了 msdn 参数含意,我回头补上。
2008-09-02 15:34
chinshin
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2008-8-31
收藏
得分:0 
那就麻烦你了!!
2008-09-02 15:42
hellson
Rank: 2
来 自:北京
等 级:新手上路
威 望:4
帖 子:195
专家分:0
注 册:2008-9-1
收藏
得分:0 
g.DrawImage(bmp, new Rectangle(50, 50, bmp.Width, bmp.Height), 0, 0, bmp.Width, bmp.Height, GraphicsUnit.Pixel,null);

null的地方需要涉及其他知识,如果不涉及透明问题就好办了,直接 g.DrawImage(bmp, 50, 50);
否则 ImageAttributes attr = new ImageAttributes();

attr.SetGamma…… 我猜是设置伽玛校正吧

attr.SetWrapMode 方法 (WrapMode, Color)

Mode:WrapMode 的一个元素,它指定使用重复的图像副本平铺区域的方式。

color:一个 ImageAttributes 对象,指定所呈现图像外部的像素的颜色。如果模式参数设置为 Clamp 并且传递给 DrawImage 的源矩形大于图像本身,则该颜色可见。

再往深我也不会了
2008-09-02 15:51
快速回复:请问:怎样在Paint以外的函数画线?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018555 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved