Я делаю приложение WinForms с использованием VS2012 C++/cli и используя DrawImage для отображения HD-изображений, снятых с веб-камеры.DrawImage Высота Параметр Не работает
Изображения 1920 x 1080 растровых изображений, которые я пытаюсь отобразить на панели управления. Панель 240 x 135 (то есть ровно 1/8 изображения HD).
Я зову DrawImage следующим образом:
System::Drawing::Rectangle destRect = System::Drawing::Rectangle(0,0,Cam0Panel->Width,Cam0Panel->Height);
g->DrawImage(b,destRect);
Это должно указать, чтобы нарисовать изображение в относительном 0,0 месте на панели и размер изображения, чтобы быть 240 х 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);
}
Благодарим за любую помощь.
Что происходит вместо этого? Какую высоту он использует вместо «правой»? – bokibeg
Когда высота указана как высота панели (т. Е. 135), ничего не отображается вообще. Когда я определяю высоту как 636 (т. Е. Абсолютное местоположение в окне), изображение отображается, но не изменяется по вертикали. – user1805103
Ваш код верен. Он должен работать. Если вы используете вместо 'destRect'' 'point в (0, 0), что вы получаете? –