比如想在图片左下角写上“12345”。
解决方案 »
- wm_size消息处理与窗口闪烁的问题//该如何正确处理呢???
- 关于标签页的问题
- 定义了CDatabase db;CRecordset rs;如何插入数据????
- 送给所有正在郁闷中的朋友
- 看完c++程序设计,effective c++, think in c++, 深入浅出MFC,现在准备看VC技术内幕,大家给点自学好的建议,谢谢。
- WS_MINIMIZEBOX和WS_GROUP,WS_TABSTOP和WS_MAXIMIZEBOX怎么区别
- 关于WorkSpace区的快捷键操作
- 新手请教一个问题,如何让父窗口弹出一个子窗口后无法再弹出新的子窗口
- 我的目的是学习,大家抢分吧
- 做为一个程序员,你想没想过加入管理层呢?
- 如何把收到对方的数据的IP地址显示出来?
- 请问大家一般用什么做帮助文件啊?谢谢回答!
下面是GDI+里面Bitmap对象的其中一个构造函数。Creates a Bitmap object based on a BITMAPINFO structure and an array of pixel data.SyntaxBitmap( const BITMAPINFO *gdiBitmapInfo,
VOID *gdiBitmapData
);
ParametersgdiBitmapInfo
[in] Pointer to a Microsoft® Windows® Graphics Device Interface (GDI)BITMAPINFO structure. This structure defines several bitmap attributes, such as size and pixel format. The BITMAPINFO structure is defined in Wingdi.h.
gdiBitmapData
[in] Pointer to an array of bytes that contains the pixel data. 上面的两个参数都是可以从ISampleGrabberCB的SampleCB方法中获得的,
得到一个当前帧的Bitmap对象后,就可以用GDI+的其它方法在上面写字画线等等,
最后可以用Bitmap的Save方法保存成一个BMP文件。
{
UINT num = 0; // number of image encoders
UINT size = 0; // size of the image encoder array in bytes ImageCodecInfo* pImageCodecInfo = NULL; GetImageEncodersSize(&num, &size);
if(size == 0)
return -1; // Failure pImageCodecInfo = (ImageCodecInfo*)(malloc(size));
if(pImageCodecInfo == NULL)
return -1; // Failure GetImageEncoders(num, size, pImageCodecInfo); for(UINT j = 0; j < num; ++j)
{
if( wcscmp(pImageCodecInfo[j].MimeType, format) == 0 )
{
*pClsid = pImageCodecInfo[j].Clsid;
free(pImageCodecInfo);
return j; // Success
}
} free(pImageCodecInfo);
return -1; // Failure
}
---------------------------------------------
BITMAPINFO bi;
bi.bmiHeader = pVideoHeader->bmiHeader;//pVideoHeader可以从MediaType中获得(pbFormat) Bitmap bmSave(&bi,
static_cast<void *>(rgb_buffer_pointer));//rgb_buffer_pointer为实际的RGB数据缓冲区 Graphics gp(&bmSave);
FontFamily fontFamily(L"Times New Roman");
Gdiplus::Font font(&fontFamily, 24, FontStyleRegular, UnitPixel); PointF origin(0.0f, 0.0f);
SolidBrush blackBrush(Color(255, 0, 0, 0)); gp.DrawString(L"Roger.Yi",8,
&font,
origin,
&blackBrush); CLSID bmpClsid;
GetEncoderClsid(L"image/bmp", &bmpClsid); bmSave.Save(L"bmsave.bmp",&bmpClsid,NULL);
刚从微软下个gdiplus_dnld.exe,解出来只有dll,怎么用啊。