Jon*_*age 3 .net windows c++-cli drawimage winforms
我正在制作一个重载TableLayoutPanel,它绘制了一些花哨的边框,但由于某种原因,调用Graphics::DrawImage没有按预期工作。当我拉伸它时,它似乎淡出我的 1x10 像素源图像:

这是进行渲染的函数:
void GTableLayoutPanel::RenderSides(Graphics^ g, array<Drawing::Image^>^ sideImages)
{
if( sideImages )
{
if( sideImages->Length < 4 )
{
throw gcnew System::ArgumentException(String::Format("Not enough images supplied to render sides (expected 4 but only got {0})", sideImages->Length));
}
int borderSize = sideImages[0]->Height;
g->DrawImage(sideImages[0], Rectangle(borderSize, 0, this->Width-borderSize*2, borderSize));
g->DrawImage(sideImages[1], Rectangle(this->Width-borderSize, borderSize, borderSize, this->Height-borderSize*2));
g->DrawImage(sideImages[2], Rectangle(borderSize, this->Height-borderSize, this->Width-borderSize*2, borderSize));
g->DrawImage(sideImages[3], Rectangle(0, borderSize, borderSize, this->Height-borderSize*2));
}
}
Run Code Online (Sandbox Code Playgroud)
当您使用极端放大倍数时,这是插值的副作用。你需要这样的东西:
g->InterpolationMode = System::Drawing::Drawing2D::InterpolationMode::NearestNeighbor;
g->PixelOffsetMode = System::Drawing::Drawing2D::PixelOffsetMode::None;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2683 次 |
| 最近记录: |