質問: np.full((1, 4, 3), color, dtype=np.uint8) ax_list[i].set_axis_off() ax_list[i].text(-1, 0, i, va='center', ha='right', fontsize=10) ax_list[i].imshow(color_img, aspect='auto') plt.show() ``` どなたか,分かる方いらっしゃいましたら,ご教授願います.
回答: 8bitカラーのBMP画像のカラーパレット操作(python PIL)。の手法でできそうです。 コードにすると以下のような感じになるでしょうか。 ``` from PIL import Image import matplotlib.pyplot as plt import numpy as np img = Image.open(r"lena.png") # http://optipng.sourceforge.net/pngtech/img/lena.html #インデックスカラーに変換 img = img.convert("P") # カラーパレットにアクセスする。 palette = img.getpalette() # リストの値は index=0 から順番に R, G, B, R, G, B, ...] palette = np.array(palette).reshape(-1, 3) # 入れ替え tmp = palette[2] palette[2] = palette[15] palette[15] = tmp # パレット数の変更 N_COLOR = len(palette)-100 # 適当な数に減らす palette = palette[:N_COLOR] # パレットの更新 palette = palette.reshape(-1).tolist() img.putpalette(palette) # 実データの更新 data = list(img.getdata()) # この処理はやりたいことに従ってご自身で実装ください。 for i,v in enumerate(data): if v >= N_COLOR: data[i] = N_COLOR-1 # とりあえず末尾の番号に振る? img.putdata(data) img.save('ret.png') ``` ![イメージ説明