求助!为什么会出错?

myjeff myjeff 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
void CTBitmapDlg::OnTest()
{
HDC MemDC;
char text1[20];
char * text;
text=text1;
strcpy(text,"TEST\0");
int cxImage = 300;
int cyImage = 400;
int numPixels = cxImage*cyImage;
BYTE *pText = new BYTE[numPixels];
for(int i = 0 ; i < numPixels; i++)
{
pText[i] = 0;
}
HBITMAP bitmap = CreateBitmap(cxImage, cyImage, 0, 8, pText);

if (bitmap)
{
MemDC = CreateCompatibleDC(NULL);
SelectObject(MemDC,bitmap);

SetBkMode(MemDC,TRANSPARENT);
SetTextColor(MemDC, RGB(0xff,0,0));

HFONT hFont;
hFont = CreateFont(100, 0, 0, 0, FW_BOLD, FALSE, FALSE, FALSE,
0, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS,
DEFAULT_QUALITY, DEFAULT_PITCH, text);
HFONT hfont = (HFONT)::SelectObject(MemDC, hFont);

TextOut(MemDC,30,20,text,strlen(text));

//把数据拷回
HBITMAP *bmp = (HBITMAP*)SelectObject(MemDC,bitmap);
//这儿错了
long len = GetBitmapBits(*bmp,numPixels,(PBYTE)pText);
//int len = GetDIBits(MemDC,bitmap,1,lpbi->biHeight,(PBYTE)pText,(LPBITMAPINFO)lpbi,DIB_RGB_COLORS);
if(len == 0)
{
AfxMessageBox("Wrong");
}
else
{
RGBTRIPLE* prgbText = (RGBTRIPLE*) pText;
for (int i=0; i<numPixels; i++, prgbText++)
{
if( (prgbText->rgbtGreen != 0 )|| (prgbText->rgbtBlue != 0) ||( prgbText->rgbtRed != 0))
{
/*
alpha就是透度,公式如下:a1为字幕透度 a2为视频透度,此处假设视频不透,
为1.0,RGB1为字幕颜色,RGB2为视频颜色,RGB为合成后的颜色,则
RGB = a1 * RGB1 + (1-a1)*RGB2
如果字幕不透,则a1为1.0,其结果是字幕完全遮盖视频
*/
//test
prgbText->rgbtGreen = 255;//prgbText->rgbtGreen;
prgbText->rgbtBlue = 0;//prgbText->rgbtBlue;
prgbText->rgbtRed = 0;//prgbText->rgbtRed;
}
}
}

}

delete pText;

}
...全文

相关推荐

jquery 为什么使用jQuery,优点 可以做什么,

#### 为什么使用jQuery?- **简化DOM操作**:jQuery提供了丰富的API用于简化DOM树的操作,使得开发者能够更加容易地添加、删除或修改页面元素。

Jhh___

为什么你的代码总是出错?或许你忽视了这些细节!

大家好,今天咱们聊一个程序员常常面临的问题——代码出错!很多时候,我们以为自己已经做得很完美,写的代码也非常干净简洁,但总是出现莫名其妙的错误。你有没有觉得自己的代码像是一个精密的机器,按照你设定的步骤应该顺利运行,但总是出现各种“意外”,甚至是那些你自己都没法理解的bug?今天,就让我带着一颗爆笑的心情,一起扒一扒代码中常见的那些细节问题,看看是哪些“阴魂不散”的小细节,悄悄坑了我们!别担心,我们会从头到尾一起调侃这些坑,同时给出实际的代码案例和讲解。你还等什么?

喵手

maven打包出错解决办法,亲测绝对可以!

**为什么要搭建Maven私服**:企业内部项目通常有私有的依赖库,直接连接外部公共仓库会增加网络延迟,且可能涉及安全问题。搭建Maven私服可以作为中间层,缓存公共依赖,同时托管内部私有库。2.

面向Offer学Java

为什么打开word出错,word文档打开出错?.docx

Word 文档打开出错的解决方法在日常办公中,我们经常会遇到 Word 文档打开出错的问题,例如文档无法打开、程序崩溃、或者显示错误信息等情况。

Lidx0710

为什么Ghost系统出错?

在进行系统备份和恢复时,保持硬件的良好状态,选用合适的工具,以及确保系统的更新和维护,都是避免Ghost系统出错的关键步骤。

u010770537
评论
收藏 已收藏
分享
返回顶部
myjeff
VC/MFC 16,550 成员 421,606 内容