社区
界面
帖子详情
gdi+ DrawString 在黑白图片上输出文本怎么不对,同样的代码多次执行之后,还会抛出异常(仅黑白图片时)?
吉哥
2005-08-14 07:57:23
请教:本人参考了SDK帮助文档,写了段代码,就是文本输出(指定位置,字体,SolidBrush),各种图形格式都行,当为黑白图片时,就没有任何改变,且第二次执行时,会出错(好象是创建画刷时)?各位大侠多多帮忙!!!!
...全文
169
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
打赏
举报
回复
不知道你是否释放了资源。。
c#
GDI+
完整例子
**旋转文字(Rotated Text)**:除了常规的
文本
绘制,
GDI+
还可以实现旋转文字,这在创建动态图形或艺术效果
时
非常有用。10.
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
winform
gdi+
重绘窗体 控件
**
GDI+
控件重绘** - 控件的重绘
同样
依赖于`OnPaint`事件。对于button控件,可以通过设置自定义的背景色、边框样式、文字位置等,以达到自定义外观的效果。
界面
15,976
社区成员
115,866
社区内容
发帖
与我相关
我的任务
界面
VC/MFC 界面
复制链接
扫一扫
分享
社区描述
VC/MFC 界面
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章