gdi+ DrawString 在黑白图片上输出文本怎么不对,同样的代码多次执行之后,还会抛出异常(仅黑白图片时)?

吉哥 2005-08-14 07:57:23
请教:本人参考了SDK帮助文档,写了段代码,就是文本输出(指定位置,字体,SolidBrush),各种图形格式都行,当为黑白图片时,就没有任何改变,且第二次执行时,会出错(好象是创建画刷时)?各位大侠多多帮忙!!!!
...全文
83 点赞 收藏 9
写回复
9 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
吉哥 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
不知道你是否释放了资源。。
回复
相关推荐
发帖
界面
创建于2007-09-28

1.5w+

社区成员

VC/MFC 界面
申请成为版主
帖子事件
创建了帖子
2005-08-14 07:57
社区公告
暂无公告