回答編集履歴
2
修正
answer
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
32bitカラーで330x330のグレースケールを描画する場合を、
|
|
2
|
-
元のソースコードに加筆しました。(8bitグレースケールも試した後なので、汚いですが)
|
|
2
|
+
元のソースコードに加筆しました。(8bitグレースケールの再現と対策も試した後なので、汚いですが)
|
|
3
3
|
```C#
|
|
4
4
|
int Gwidth = 330;
|
|
5
5
|
// int Gwidth = 332; // 8bitグレースケールは4バイト境界なので横のサイズを4の倍数(332等)にするしか無い
|
|
@@ -10,14 +10,12 @@
|
|
|
10
10
|
// 32bitカラーを使用する場合
|
|
11
11
|
byte[] Gdata = new byte[Gwidth * 4 * Gheight];
|
|
12
12
|
|
|
13
|
-
for(int h = 0; h < Gheight; h++)
|
|
13
|
+
for(int h = 0; h < Gheight; h++)
|
|
14
|
-
for (int w = 0; w < Gwidth * 4; w++)
|
|
14
|
+
for (int w = 0; w < Gwidth * 4; w++)
|
|
15
15
|
if(w % 4 != 3)
|
|
16
16
|
Gdata[h * Gwidth * 4 + w] = (byte)225; // グレースケールの色
|
|
17
17
|
else
|
|
18
18
|
Gdata[h * Gwidth * 4 + w] = (byte)255; // 透過度(255固定)
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
19
|
|
|
22
20
|
// Bitmap Gimg = new Bitmap(Gwidth, Gheight, PixelFormat.Format8bppIndexed);
|
|
23
21
|
Bitmap Gimg = new Bitmap(Gwidth, Gheight, PixelFormat.Format32bppArgb);
|
1
修正
answer
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
32bitカラーで330x330のグレースケールを描画する場合を、
|
|
2
|
-
元のソースコードに加筆しました。
|
|
2
|
+
元のソースコードに加筆しました。(8bitグレースケールも試した後なので、汚いですが)
|
|
3
3
|
```C#
|
|
4
4
|
int Gwidth = 330;
|
|
5
5
|
// int Gwidth = 332; // 8bitグレースケールは4バイト境界なので横のサイズを4の倍数(332等)にするしか無い
|
|
6
6
|
int Gheight = 330;
|
|
7
7
|
|
|
8
|
+
// 8bitグレースケール
|
|
9
|
+
// byte[] Gdata = new byte[Gwidth * Gheight];
|
|
8
|
-
// 32bitカラー
|
|
10
|
+
// 32bitカラーを使用する場合
|
|
9
|
-
|
|
10
11
|
byte[] Gdata = new byte[Gwidth * 4 * Gheight];
|
|
11
12
|
|
|
12
13
|
for(int h = 0; h < Gheight; h++) {
|