2022/07/20(水) [n年前の日記]
#1 [cg_tools][tic80] TIC-80のパレットデータを手元に残そうとして少しハマった
TIC-80 は、ある時期からパレットデータを SWEETIE 16 というデータに差し替えていたらしいのだけど。
*1
_Palette - nesbox/TIC-80 Wiki
_Sweetie 16 Palette - lospec.com
この SWEETIE 16 パレットデータを手元に残そうとして、少しハマってしまった。
TIC-80 の Wiki にアップロードされているパレットデータ画像は、ページに記述されてる数値とビミョーに違っているようで…。具体的には、水色がちょっとずれてる。作業していてなんだか変だなと思ったら、そういうオチだった…。
そんなわけで、画像はちょっと当てにならないので、記述されている数値を元にしてパレットデータ画像を新規に生成するPythonスクリプトを書いてみた。
いやまあ、losepc.com からダウンロードできる画像や .gpl を使えば問題無さそうだけど…。ざっと調べた感じでは、そちらはちゃんと数値が合ってるように見えた。TIC-80 の Wiki に載ってる画像のみがおかしい。
_Sweetie 16 Palette - lospec.com
でもまあ、「Python + Pillow を使えばこういうこともできるよね」的サンプルの一つ、みたいな感じで一応アップロードしておきます。
_Palette - nesbox/TIC-80 Wiki
_Sweetie 16 Palette - lospec.com
この SWEETIE 16 パレットデータを手元に残そうとして、少しハマってしまった。
TIC-80 の Wiki にアップロードされているパレットデータ画像は、ページに記述されてる数値とビミョーに違っているようで…。具体的には、水色がちょっとずれてる。作業していてなんだか変だなと思ったら、そういうオチだった…。
そんなわけで、画像はちょっと当てにならないので、記述されている数値を元にしてパレットデータ画像を新規に生成するPythonスクリプトを書いてみた。
いやまあ、losepc.com からダウンロードできる画像や .gpl を使えば問題無さそうだけど…。ざっと調べた感じでは、そちらはちゃんと数値が合ってるように見えた。TIC-80 の Wiki に載ってる画像のみがおかしい。
_Sweetie 16 Palette - lospec.com
でもまあ、「Python + Pillow を使えばこういうこともできるよね」的サンプルの一つ、みたいな感じで一応アップロードしておきます。
◎ 生成した .gpl や .png。 :
◎ 生成Pythonスクリプト。 :
動作確認環境は、Windows10 x64 21H2 + Python 3.9.13 64bit + Pillow 9.1.1。
sweetie-16_tic80new_.gpl と sweetie-16_tic80new.png を生成する。
動作には Pillow のインストールが必要。pip install Pillow -U でインストールできるはず。
_create_sweetie-16_image.py
py create_sweetie-16_image.py で実行すれば、.gpl と .png が得られる。
sweetie-16_tic80new_.gpl と sweetie-16_tic80new.png を生成する。
動作には Pillow のインストールが必要。pip install Pillow -U でインストールできるはず。
_create_sweetie-16_image.py
from PIL import Image
from PIL import ImageDraw
out_gpl_file = "sweetie-16_tic80new_.gpl"
out_img_file = "sweetie-16_tic80new.png"
title = "Sweetie-16 (TIC-80 new)"
tbl = [
["Black", 0, "1A1C2C"],
["Purple", 1, "5D275D"],
["Red", 2, "B13E53"],
["Orange", 3, "EF7D57"],
["Yellow", 4, "FFCD75"],
["Light Green", 5, "A7F070"],
["Green", 6, "38B764"],
["Dark Green", 7, "257179"],
["Dark Blue", 8, "29366F"],
["Blue", 9, "3B5DC9"],
["Light Blue", 10, "41A6F6"],
["Cyan", 11, "73EFF7"],
["White", 12, "F4F4F4"],
["Light Grey", 13, "94B0C2"],
["Grey", 14, "566C86"],
["Dark Grey", 15, "333C57"],
]
def main():
pal = []
# create .gpl
lst = []
lst.append("GIMP Palette")
lst.append("Name: %s" % title)
lst.append("Columns: 8")
lst.append("#")
lst.append("#")
for t in tbl:
name, index, hexstr = t
col = int(hexstr, 16)
r = (col >> 16) & 0x0ff
g = (col >> 8) & 0x0ff
b = col & 0x0ff
s = "%-8d%-8d%-8d%06x %d %s" % (r, g, b, col, index, name)
lst.append(s)
pal.append((r, g, b))
for s in lst:
print(s)
# save .gpl file
with open(out_gpl_file, mode="w") as f:
f.write("\n".join(lst))
f.write("\n")
print("# Save %s" % out_gpl_file)
# create image and save
xcnt, ycnt = 8, 2
# xcnt, ycnt = 16, 1
w, h = 32, 32
img_w, img_h = w * xcnt, h * ycnt
im = Image.new("P", (img_w, img_h), (0, 0, 0))
paldata = []
for c in pal:
r, g, b = c
paldata.append(r)
paldata.append(g)
paldata.append(b)
im.putpalette(paldata, rawmode="RGB")
draw = ImageDraw.Draw(im)
x, y = 0, 0
for c in range(len(pal)):
draw.rectangle((x, y, x + w - 1, y + h - 1), fill=c)
x += w
if x >= img_w:
x = 0
y += h
im.save(out_img_file)
print("# Save %s" % out_img_file)
if __name__ == '__main__':
main()
py create_sweetie-16_image.py で実行すれば、.gpl と .png が得られる。
*1: 最初の頃は、DB16 (DawnBringer 16) というパレットデータが割り当てられてた。
[ ツッコむ ]
#2 [pc] お袋さん用ノートPCをセットアップ
作業メモ。お袋さんが会社で使ってたノートPCが、社内のPC管理の都合で不要になったそうで、しばらく前に、お袋さんがそのノートPCを自宅に持って帰ってきた。型番は、DELL Vostro 15 3558、と書いてある。
しばらく放置してしまっていたけど、さすがにそろそろ使えるようにしなければと、夕食の後にセットアップ作業をしてみた。と言っても、MACアドレスを調べて、無線LANルータにMACアドレスを登録して、Wi-Fi接続しただけ。とりあえず、これでお袋さん用のノートPCもネット接続できるようになった。
その他の詳細はGRPでメモ。 そもそも、MACアドレスフィルタリングって今となっては無意味、という話も見かけたような…。
_高木浩光@自宅の日記 - 無線LANのMACアドレス制限の無意味さがあまり理解されていない
_MACアドレスフィルタリングって何?【“Wi-Fiの困った”を解決:基本編 第8回】 - INTERNET Watch
_「意味ない」どころか「悪影響」!?Wi-FiのセキュリティとMACアドレスフィルタリング再考|そだフラ!
_MACアドレス制限は“効果ゼロ”今さら聞けない「無線LAN認証」の基本【1/4】 | 大塚商会
まあ、そういうものと思っておくことにしよう…。
しばらく放置してしまっていたけど、さすがにそろそろ使えるようにしなければと、夕食の後にセットアップ作業をしてみた。と言っても、MACアドレスを調べて、無線LANルータにMACアドレスを登録して、Wi-Fi接続しただけ。とりあえず、これでお袋さん用のノートPCもネット接続できるようになった。
その他の詳細はGRPでメモ。 そもそも、MACアドレスフィルタリングって今となっては無意味、という話も見かけたような…。
_高木浩光@自宅の日記 - 無線LANのMACアドレス制限の無意味さがあまり理解されていない
_MACアドレスフィルタリングって何?【“Wi-Fiの困った”を解決:基本編 第8回】 - INTERNET Watch
_「意味ない」どころか「悪影響」!?Wi-FiのセキュリティとMACアドレスフィルタリング再考|そだフラ!
_MACアドレス制限は“効果ゼロ”今さら聞けない「無線LAN認証」の基本【1/4】 | 大塚商会
「進入禁止」と書かれた規制テープのようなものであり、一定の抑止効果はあるものの悪意を持った攻撃者はそれを気にもとめず乗り越えてくることを理解したうえで導入すべきでしょう。
まあ、そういうものと思っておくことにしよう…。
[ ツッコむ ]
以上、1 日分です。
