mieki256's diary



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 を使えばこういうこともできるよね」的サンプルの一つ、みたいな感じで一応アップロードしておきます。

生成した .gpl や .png。 :

生成した .gpl (GIMP Palette ファイル) や .png は以下。

_sweetie-16_tic80new_.gpl
_sweetie-16_tic80new.png
sweetie-16_tic80new.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
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認証」の基本【1/4】 | 大塚商会 より


まあ、そういうものと思っておくことにしよう…。

以上、1 日分です。

過去ログ表示

Prev - 2022/07 - Next
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31

カテゴリで表示

検索機能は Namazu for hns で提供されています。(詳細指定/ヘルプ


注意: 現在使用の日記自動生成システムは Version 2.19.6 です。
公開されている日記自動生成システムは Version 2.19.5 です。

Powered by hns-2.19.6, HyperNikkiSystem Project