回答編集履歴
3
修正
test
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
通常のビットマップといっているのはたぶん24ビット以上のビットマップのことだと思いますが、パレットがありません。ですのでパレットの数が0です。
|
2
2
|
|
3
|
-
パレットのないBMPからインデックスあり(256色以下)のビットマップに変換するには
|
3
|
+
パレットのないBMPからインデックスあり(256色以下)のビットマップに変換するには単純なものだとcloneでできます。
|
4
4
|
|
5
5
|
```c#
|
6
6
|
|
2
修正
test
CHANGED
@@ -4,23 +4,25 @@
|
|
4
4
|
|
5
5
|
```c#
|
6
6
|
|
7
|
-
|
7
|
+
using (var srcFs = new FileStream(@"src.bmp", FileMode.Open))
|
8
8
|
|
9
9
|
{
|
10
10
|
|
11
|
-
// 256色インデックスBMPインスタンス生成
|
12
|
-
|
13
|
-
var indexedBMP= new Bitmap(img.Width, img.Height, PixelFormat.Format8bppIndexed);
|
14
|
-
|
15
|
-
using (var
|
11
|
+
using (var srcBmp = new Bitmap(srcFs))
|
16
12
|
|
17
13
|
{
|
18
14
|
|
15
|
+
using (var dstFs = new FileStream(@"dst.bmp", FileMode.Create, FileAccess.Write))
|
16
|
+
|
17
|
+
{
|
18
|
+
|
19
|
-
|
19
|
+
var dstBmp = srcBmp.Clone(new Rectangle(0, 0, srcBmp.Width, srcBmp.Height), PixelFormat.Format8bppIndexed);
|
20
|
+
|
21
|
+
dstBmp.Save(dstFs, ImageFormat.Bmp);
|
22
|
+
|
23
|
+
}
|
20
24
|
|
21
25
|
}
|
22
|
-
|
23
|
-
return indexedBMP;
|
24
26
|
|
25
27
|
}
|
26
28
|
|
1
修正
test
CHANGED
@@ -10,7 +10,9 @@
|
|
10
10
|
|
11
11
|
// 256色インデックスBMPインスタンス生成
|
12
12
|
|
13
|
-
var indexedBMP= new Bitmap(img.Width, img.Height, PixelFormat.Format8bppIndexed);
|
13
|
+
var indexedBMP= new Bitmap(img.Width, img.Height, PixelFormat.Format8bppIndexed);
|
14
|
+
|
15
|
+
using (var gr = Graphics.FromImage(indexedBMP))
|
14
16
|
|
15
17
|
{
|
16
18
|
|