DrawImage高度参数不起作用
DrawImage Height Parameter Not Working
我正在使用VS2012 c++/cli制作一个WinForms应用程序,并使用DrawImage显示从网络摄像头捕获的高清图像。
这些图像是1920 x 1080位图,我正试图在Panel控件上显示这些位图。面板尺寸为240 x 135(即正好为高清图像的1/8)。
我打电话给DrawImage如下:
System::Drawing::Rectangle destRect = System::Drawing::Rectangle(0,0,Cam0Panel->Width,Cam0Panel->Height);
g->DrawImage(b,destRect);
这应该指定在面板上相对0,0的位置绘制图像,并将图像大小设置为240 x 135。但是,图像将不会显示。
如果我更改Height参数以指定Panel->Bottom(这是应用程序中的绝对位置—~630),则图像确实显示,并且宽度大小正确,但高度大小不正确。
知道我做错了什么,或者如何正确调整图像大小和显示图像吗?
这是代码的完整版本。
void Cam0Panel_Paint( Object^ /*sender*/, System::Windows::Forms::PaintEventArgs^ e )
{
System::Drawing::Bitmap^ b = ImageWinArray[CHANNEL_SELECT0];
Graphics^ g = e->Graphics;
g->InterpolationMode = System::Drawing::Drawing2D::InterpolationMode::Bilinear;
g->CompositingMode = System::Drawing::Drawing2D::CompositingMode::SourceCopy;
System::Drawing::Rectangle destRect = System::Drawing::Rectangle(0,0,Cam0Panel->Width,Cam0Panel->Bottom);
g->DrawImage(b,destRect);
}
谢谢你的帮助。
我想明白了。存储位图的数组已初始化,但初始化的范围不够持久。因此,存储在数组中的引用可能会被垃圾清理掉。出于某种奇怪的原因,唯一能揭示这一点的方法是drawimage调用上的垂直参数。一旦我纠正了初始化,drawimage调用就正常工作了。
相关文章:
- 带有指定长度字符* 参数的 std::regex_search 在 VS2017 中不起作用?
- 我正在开发服务器,ip作为参数传递不起作用
- G++ C++17 类模板参数推导在非常特殊的情况下不起作用
- 类中的虚拟布尔函数参数不起作用
- 模板 ctor 类型推导不起作用(没有匹配的构造函数用于初始化 ...)与函数<>参数
- 我的代码在作为参数传入 .begin() 时不起作用,但在我将 .begin() 转换为迭代器后工作
- 为什么重载运算符>在参数声明 const 时不起作用?
- 为什么当我提供一些模板参数时,C++17 模板类推导不起作用?
- 为什么static_assert在带有 const 参数的成员函数中不起作用?
- ConvertToReferencePoint 方法不起作用,获取作业参数的 NULL (HyperV 2016)
- 线程函数参数的前向声明不起作用
- 模板参数类型推导在函数对象中不起作用
- 将参考类型作为嵌套模板结构中的模板参数作为模板参数不起作用
- 为什么参数推断在此模板模板参数中不起作用
- C++ 数组参数不起作用
- 带有 3 个参数的冲刺不起作用
- 模板参数在具有相同数据类型的单个类型名的构造函数中不起作用
- 像在 Python 中一样C++循环中的参数解析。为什么不起作用?
- C 类是功能不起作用的参数
- 为什么在参数输入之前将计算放置在代码中时,计算不起作用