mieki256's diary



2022/06/27(月) [n年前の日記]

#1 [python][cg_tools] ディザリング処理をするプログラムをPythonに移植中その2

任意のパレットを指定してディザリングをかけるサンプルプログラム群を ―― C++ で書かれてるソレを Python で書き直しているところ。

_Arbitrary-palette positional dithering algorithm

アルゴリズム1を移植(?)中。tri-tone まで対応したけど、どうにも処理が遅い。8x8 のディザで処理をしているけれど、これって 4x4 ぐらいでも十分なのではないかという気がしてきたので、2x2、4x4 を選べるような仕様に改造中。

コマンドラインオプションで処理を変えるようにしたいので、argparse を使ってみた。

def main():
    parser = argparse.ArgumentParser(description="Yliluoma ordered dithering 1")
    parser.add_argument("-i", "--input", required=True, help="Input png filename")
    parser.add_argument("-o", "--output", required=True, help="Output png filename")
    parser.add_argument("-m", "--mode", type=int, default=3, help="job kind 0-4. default: 3")
    parser.add_argument("-d", "--dither", type=int, default=8,
                        help="Dither type 2,4,8 (2x2,4x4,8x8). default: 8")
    args = parser.parse_args()

    if args.mode < 0 or args.mode > 4:
        print("Error: Unknown mode = %d" % args.mode)
        sys.exit()

    if args.dither != 2 and args.dither != 4 and args.dither != 8:
        print("Error: Unknown dither = %d" % args.dither)
        sys.exit()

    srcim = Image.open(args.input)
    im = convert_dither(srcim, args.mode, args.dither)
    im.save(args.output)

ただ、help文字列の記述の仕方が分からない。一般的にはどういう感じのテキストを書くのだろう。どこかにそのあたりの解説記事が無いものか…。

以上、1 日分です。

過去ログ表示

Prev - 2022/06 - 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

カテゴリで表示

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


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

Powered by hns-2.19.6, HyperNikkiSystem Project