问题: 我有在白色背景上的对象的图片。 我需要具有这些对象的确切形状的PictureBox,但我不知道这些对象如何看起来像先验。
答案 0 :(得分:1)
我对此的解决方案是一个新类:
class ShapedPictureBox : PictureBox
{
public ShapedPictureBox()
{
}
public Color transparentColor = Color.White;
public void updateShape()
{
if(this.Image = null) return;
Bitmap bitmap = new Bitmap(this.Image);
System.Drawing.Drawing2D.GraphicsPath graphicsPath = new System.Drawing.Drawing2D.GraphicsPath();
for(int x = 0; x < this.Image.Width; x++)
for(int y = 0; y < this.Image.Height; y++)
if(transparentColor != bitmap.GetPixel(x, y))
graphicsPath.AddRectangle(new Rectangle(new Point(x, y), new Size(1, 1)));
this.Region = new Region(graphicsPath);
}
}
无论何时使对象无效,都将重新创建形状。我知道这个解决方案根本没有效果,但它是我发现的唯一...我希望它有助于某人...
如果您有更好/更有效的想法,请告诉我。