中央に 10 x 10 の正方形の透明なギャップがある 32 x 32 ピクセルの小さな正方形を生成しようとしています。
これは私がこれまでに持っているものです:
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;
}