我试图生成一个 32 x 32 像素的小正方形,中间有一个 10 x 10 的方形透明间隙。
这是我到目前为止所拥有的:
private Image CreatePicture(){
// Create a new Bitmap object, 32 x 32 pixels in size
Bitmap canvas = new Bitmap(32,32,System.Drawing.Imaging.PixelFormat.Format16bppRgb555);
for(int i=10;i<21;i++){
for(int p=10;p<21;p++){
canvas.SetPixel(i,p,Color.Lime);
}
}
canvas.MakeTransparent(Color.Lime);
// return the picture
return canvas;
}
它很粗糙,不会成为最终的“优化版本”,它只是一个粗糙的演示脚本。问题是返回的图像不透明,而只是一个灰色框:(。
任何帮助表示赞赏。
迈克尔
更新:我已将脚本更新为 PixelFormat 设置为 Alpha RGB 格式,它实际上可以接受而不会在运行时出错。现在,如果我删除“canvas.MakeTransparent(Color.Lime);” 行它在中间显示一个石灰框,它只显示一个与灰色背景颜色相同的灰色框;所以似乎透明度被认可只是不暗示透明度!
private Bitmap CreatePicture(){
// Create a new Bitmap object, 50 x 50 pixels in size
Bitmap canvas = new Bitmap(82,82,System.Drawing.Imaging.PixelFormat.Format32bppArgb);
for(int i=10;i<71;i++){
for(int p=10;p<71;p++){
canvas.SetPixel(i,p,Color.Lime);
}
}
canvas.MakeTransparent(Color.Lime);
// return the picture
return canvas;
}