首页 新闻 会员 周边

采用C# Graphics 给图片添加边框的问题

0
悬赏园豆:10 [已关闭问题] 关闭于 2012-04-02 12:09
                using (Graphics g = Graphics.FromImage(tempBmp))
{
Color[] colorList = ledDesignIns.getColorList(ledDesignIns.CurrentScreen.designSetting.colorType);
Color color = colorList[bdColor];
Pen myPen = new Pen(color, bdWidth);//bdWidth设置的不一样 然后就各种问题 比如宽度为1的效果就没有 宽度为3的效果好,所谓的效果就是尽量上线左右四条线一样宽 但实际确实不是一样宽的。
g.DrawRectangle(myPen, 0, 0, tempBmp.Width - 1, tempBmp.Height - 1);//此处参数不知为何必须-1 没道理啊 另外 Point1坐标也有问题,画出来的线条,上 左一致 右和下一致 但是 上左和下右不一致~ 搞不懂啊。是不是Graphics有什么参数需要用到啊
g.DrawImage(originalBmp, new Point(bdWidth, bdWidth));
}
tempBmp.Save("f://test0.bmp");
return tempBmp;
子夜一梦的主页 子夜一梦 | 菜鸟二级 | 园豆:213
提问于:2012-03-28 17:42
< >
分享
所有回答(2)
0

你这有神马问题吗,把问题说一下啊。

悟行 | 园豆:12559 (专家六级) | 2012-03-29 09:14

就是在图片周围画框 结果 上下左右线的粗细不一致的问题~ 请问如何解决。

支持(0) 反对(0) 子夜一梦 | 园豆:213 (菜鸟二级) | 2012-03-29 09:51
0

你将g.DrawRectangle(myPen, 0, 0, tempBmp.Width - 10, tempBmp.Height - 10);这个里面减去的多见一点再试一试,看是否宽度不一致。或者就减去你画笔的宽度,再试一试

小小刀 | 园豆:1991 (小虾三级) | 2012-03-29 20:15

是这样的 ~ 主要是为了在图片边缘画 如果在图片中间画是没问题的~

在边缘画的话 可以看出来 线条粗细不一 放大后会很明显 当然不放大也可以看出来 不是由于加一点减一点就可以解决的  试了好多方法 都没用~

支持(0) 反对(0) 子夜一梦 | 园豆:213 (菜鸟二级) | 2012-03-29 20:49

@子夜一梦: 那就是你减去的数据有问题了。先问个问题是不是上面和右边 的细一点,其他的两个粗一点?

如果是这样的话,就是你起始点有问题,应该 1.5,1.5

支持(0) 反对(0) 小小刀 | 园豆:1991 (小虾三级) | 2012-03-29 21:37

@小小刀: 前提是你的画笔的宽度是3

支持(0) 反对(0) 小小刀 | 园豆:1991 (小虾三级) | 2012-03-29 21:38

@小小刀: 

Point怎样才能到(1.5,1.5)这一点呢? 像素点有0.5这么一说哇? 而且也不是上面和右面的细一点 而是 上和左细一些~。

支持(0) 反对(0) 子夜一梦 | 园豆:213 (菜鸟二级) | 2012-03-30 10:30

@子夜一梦: 那就是对的了,应该是g.DrawRectangle(myPen, 2, 2, tempBmp.Width - 4, tempBmp.Height - 4);画笔宽度为4

我记得好像可以为小数的。很久没有搞gdi了

支持(0) 反对(0) 小小刀 | 园豆:1991 (小虾三级) | 2012-03-30 19:44

@小小刀: 还是不行哦~~ 就好像是放大后 像素像左上角偏移 然后就显得上和左的线条变细了~~ 不知道有没有哪个属性可以设置的~

支持(0) 反对(0) 子夜一梦 | 园豆:213 (菜鸟二级) | 2012-04-01 15:12
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册