如何在PictureBox限定的区域内显示图像?(How do I display an image

2019-11-01 04:53发布

至于对我刚才的问题后续我已经得到了我的区域,但花了近两年时间试图显示微小的图片单独wihing该区域; 与最终目标是要能够arbitarily显示任意数量的图像,我选择。 到目前为止,这是我的代码:

    void OnPaintRadar(Object sender, PaintEventArgs e)
{
    Graphics g = e.Graphics;        
    Bitmap blip = new Bitmap(tst_Graphics.Properties.Resources.dogtag);
    Rectangle radar_rect = new Rectangle(myRadarBox.Left + 80, myRadarBox.Left + 7, myRadarBox.Width - 200, myRadarBox.Height + 200);
    using (Pen drw_pen = new Pen(Color.White, 1) )
    {
        using (GraphicsPath path = new GraphicsPath())
        {
            path.AddPie(radar_rect, 180, 180);
            path.CloseFigure();
            using (Region rdRegion = new Region(path) )
            {
                g.DrawPath(drw_pen, path);
                g.Clip = rdRegion;
                PictureBox pb = new PictureBox();
                pb.Image = (blip);
                pb.Size = blip.Size;
                g.DrawImage(blip, radar_rect);
            }
        }

    }

}// end paint method

我曾尝试DrawImageUnscaled方法还,但我要么得到显示吹填充扇形区域或没有一个我的小照片。

Answer 1:

点击这里运行演示了怎么办雷达的基本知识(或单向的,至少)一个示例应用程序。 注:此应用程序没有做双缓冲或微小的图像的透明度。

该项目的源代码是在这里 。



Answer 2:

这条线:

pb.Image = (blip);

是什么导致微小的形象出现大。 基本上,你拉一个微小的位图资源不足,然后将图片框的图片属性设置为位图(我假设“PB”是你的窗体上的图片框)。 尝试注释掉该行和下面一行。



文章来源: How do I display an image within a region defined in a Picturebox?
标签: c# .net graphics