社区
界面
帖子详情
gdi+ DrawString 在黑白图片上输出文本怎么不对,同样的代码多次执行之后,还会抛出异常(仅黑白图片时)?
吉哥
2005-08-14 07:57:23
请教:本人参考了SDK帮助文档,写了段代码,就是文本输出(指定位置,字体,SolidBrush),各种图形格式都行,当为黑白图片时,就没有任何改变,且第二次执行时,会出错(好象是创建画刷时)?各位大侠多多帮忙!!!!
...全文
164
9
打赏
收藏
gdi+ DrawString 在黑白图片上输出文本怎么不对,同样的代码多次执行之后,还会抛出异常(仅黑白图片时)?
请教:本人参考了SDK帮助文档,写了段代码,就是文本输出(指定位置,字体,SolidBrush),各种图形格式都行,当为黑白图片时,就没有任何改变,且第二次执行时,会出错(好象是创建画刷时)?各位大侠多多帮忙!!!!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
吉哥
2005-09-05
打赏
举报
回复
已查清,Graphics graphics(pImage),当pImage所存储的位图格式不符合要求时,graphics无效。
吉哥
2005-08-14
打赏
举报
回复
Font myFont(L"Arial",16);
SolidBrush blackBrush(Color(255,0,0,0));
[
Image image(fileName);
Image *pImage = image.Clone();
]
pImage->DrawString(&myFont,位置,&blackBrush,str);
差不多就是这样?
除了单色图象均没有问题
吉哥
2005-08-14
打赏
举报
回复
Font myFont(L"Arial",16);
SolidBrush blackBrush(Color(255,0,0,0));
[
]
lixiaosan
2005-08-14
打赏
举报
回复
HDC dc = ::GetDC();
HDC dcMem;
dcMem = ::CreateCompatibleDC(dc);
LOGBRUSH logbr;
memset(&logbr, 0, sizeof(LOGBRUSH));
logbr.lbColor = RGB(255,0,0);
logbr.lbStyle = BS_SOLID;
HBRUSH hBrush = CreateBrushIndirect(&logbr);
HBRUSH oldbr = (HBRUSH)SelectObject(dcMem, hBrush);
一般这种可能是资源释放的问题
最后要
//把旧的brush选回
SelectObject(dcMem, oldbrush);
//删除dc
::DeleteDC(dcMem);
以及
DeleteObject(hBrush);
吉哥
2005-08-14
打赏
举报
回复
up
吉哥
2005-08-14
打赏
举报
回复
我开始就用缺省的SolidBrush blackBrush(255,0,0,0)也是不对。
吉哥
2005-08-14
打赏
举报
回复
没有,但都是临时变量。没关系,操作其他的图片都是对的啊。在线等待。。。。。。。
dirdirdir3
2005-08-14
打赏
举报
回复
背景颜色和字体颜色设置的对不对,只有两种颜色,字体颜色要和画到的地方的颜色不同才行,不然就看不到变化了
lixiaosan
2005-08-14
打赏
举报
回复
不知道你是否释放了资源。。
GDI+
路径绘制
文本
重叠部分数据异常问题
开发过程遇到的问题,解决问题的思路和方法
GDI+
图形编程从入门到实战完整教程打包
坦白讲,
GDI+
确实老了。它没有硬件加速,不支持矢量缩放,在高分屏下容易模糊。但对于以下场景,它仍然是最佳选择:WinForms遗留系统维护工业HMI界面开发报表打印、PDF生成简单图像处理工具自定义控件开发更重要的是,理解
GDI+
能帮你建立对图形渲染底层机制的认知。当你有一天转向Direct2D、SkiaSharp甚至WebGL
时
,你会发现很多概念都是相通的。所以,不要轻视这个“老家伙”。
使用
GDI+
在C#中绘制图形和位图
本章详细介绍了如何使用
GDI+
在C#中绘制基本图形和位图,包括矩形、
文本
以及如何加载和绘制位图文件。通过示例
代码
展示了如何创建和使用Graphics对象,PictureBox控件以及如何处理位图的加载和绘制。作者还分享了一些编程技巧,如使用try...catch块来处理文件加载
时
的错误,并提供了一个自定义的LoadBitmap函数,以确保程序的健壮性。
winform自定义控件(
gdi+
)(22)——C#利用GDI画圆形控件
如下: 1、如何解决调用
Draw
String
时
报“参数无效”的问题? 2、如何在改变控件尺寸
时
,圆的直径也跟着改变? 3、如何只在圆内响应单机事件,但是不在圆外控件内的那部分响应单机事件? 4、如何在最小化窗体后,控件的圆以及圆内的文字实现重新的绘制? 本博客将会解决上述四个问题,如下: class MyControl : Control { public MyControl() { //this.BackColor = Color.Ye
GDI+
发生一般性错误
Graphics类在
执行
Draw
String
或
Draw
Line
时
触发该异常的话,如果传参没有问题,那么就是由于Graphics类内部导致的,因为是偶发性的,所以我的解决办法是捕获这次异常,并且不外抛出,冷处理。 ...
界面
15,976
社区成员
115,866
社区内容
发帖
与我相关
我的任务
界面
VC/MFC 界面
复制链接
扫一扫
分享
社区描述
VC/MFC 界面
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章