回答編集履歴
1
コード修正
test
CHANGED
@@ -3,6 +3,8 @@
|
|
3
3
|
コードにすると以下のような感じになるでしょうか。
|
4
4
|
|
5
5
|
```Python
|
6
|
+
|
7
|
+
|
6
8
|
|
7
9
|
from PIL import Image
|
8
10
|
|
@@ -12,7 +14,7 @@
|
|
12
14
|
|
13
15
|
|
14
16
|
|
15
|
-
img = Image.open(r"te
|
17
|
+
img = Image.open(r"lena.png") # http://optipng.sourceforge.net/pngtech/img/lena.html
|
16
18
|
|
17
19
|
#インデックスカラーに変換
|
18
20
|
|
@@ -23,6 +25,12 @@
|
|
23
25
|
# カラーパレットにアクセスする。
|
24
26
|
|
25
27
|
palette = img.getpalette()
|
28
|
+
|
29
|
+
|
30
|
+
|
31
|
+
# リストの値は index=0 から順番に [R, G, B, R, G, B, ...]
|
32
|
+
|
33
|
+
palette = np.array(palette).reshape(-1, 3)
|
26
34
|
|
27
35
|
|
28
36
|
|
@@ -38,15 +46,17 @@
|
|
38
46
|
|
39
47
|
# パレット数の変更
|
40
48
|
|
41
|
-
N_COLOR = len(palette)
|
49
|
+
N_COLOR = len(palette)-100 # 適当な数に減らす
|
42
50
|
|
43
51
|
palette = palette[:N_COLOR]
|
44
52
|
|
45
53
|
|
46
54
|
|
55
|
+
# パレットの更新
|
56
|
+
|
57
|
+
palette = palette.reshape(-1).tolist()
|
58
|
+
|
47
59
|
img.putpalette(palette)
|
48
|
-
|
49
|
-
|
50
60
|
|
51
61
|
|
52
62
|
|
@@ -66,6 +76,8 @@
|
|
66
76
|
|
67
77
|
img.putdata(data)
|
68
78
|
|
69
|
-
img.save('ret.
|
79
|
+
img.save('ret.png')
|
70
80
|
|
71
81
|
```
|
82
|
+
|
83
|
+
![イメージ説明](28b34d5ee07fc86d59baffaa02689549.png)
|