PR

【Python】写真からエクセルアート(ピクセルアート)を作る

コラム
スポンサーリンク

エクセルアート、ピクセルアートという言葉があります。敢えてイラスト作成用ツールではないエクセルでアートを描くというものです。
この作成をPythonで自動化してみます。

エクセルアート、ピクセルアートとは

エクセルを使ってアートを描くので「エクセルアートなのですが、その中にも二つあるようです。図形オブジェクトを使って描くやり方、セルに色を塗っていわばドット絵として描く方法。今回はこのセル色の方法でエクセルアートを作成します。

何はともあれ、サンプルをご紹介します。エクセルに画像を貼っているのではありません。

マリオの反省として、そもそもドット絵のものはアンチエイリアス(輪郭を滑らかに見せるためのグラデーション)は外してから作成したほうが、そもそもの味を活かせそうですね。

拡大すると、エクセルのセルに色がついていることが分かります。
しかし解像度が高いと、”引き”でしか見ることができないため、エクセルに画像を貼ったのと何ら変わり映えしません。
縦横それぞれ150~200画素くらいが面白いと思いました。

エクセルアート(ピクセルアート)を作るには

ADOBEのサイトに「ドット絵の制作技法を学ぶ」というのがありました。IllustratorやPhotoshopをを使って作成する方法です。それぞれがまさに図形オブジェクトのエクセルアートと、ピクセルによるエクセルアートにあたります。

真っ当に画像作成ツールで作るならこう、という参考までに。
https://www.adobe.com/jp/creativecloud/design/discover/pixel-art.html

今回、これを敢えてエクセルでやってみることにします。ただしプログラム言語はPythonを使います。

ピクセルアート自動作成ツールを作ってみる

写真からエクセルのドット絵を作成してみます。

import os
import sys
import openpyxl
from openpyxl.styles import PatternFill
from openpyxl.utils import get_column_letter
from tqdm import tqdm
from skimage import io

#Excelセル 正方形
EX_COL = 1.25
EX_ROW = 7.50

def main(filename, height, width):
    wb = openpyxl.Workbook()
    originalws = wb.active

    for y in tqdm(range(height)):
        for x in range(width):
            r,g,b = img[y, x]
            rgb = '%02X%02X%02X' % (r,g,b)
            originalws.cell(row=y+1, column=x+1).fill = PatternFill(patternType='solid', fgColor=rgb)

            originalws.column_dimensions[get_column_letter(x+1)].width = EX_COL
            originalws.row_dimensions[y+1].height = EX_ROW

    fname, _ = os.path.splitext(os.path.basename(filename))
    wb.save(fname+'.xlsx')

if __name__ == '__main__':
    filename = sys.argv[1]
    img = io.imread(filename)
    height, width, channel = img.shape

    main(filename, height, width)

これをMake_Pixelart.pyとしました。

使い方

もう一つ、下記のようなDosのバッチを作っておきます。
ファイル名は「ここに写真をドロップする.bat」にしました。
※txt形式で下記のように記述し、拡張子をbatに変更すればバッチになります。

rem @echo off
python Make_Pixelart.py %~nx1

これのショートカットを作り、このショートカットに写真をドロップする、という使い方をします。

まとめ

  • 写真の画素一つ一つの色をエクセルのセル色に指定する
  • セルを正方形にサイズ調整する

レゴやマイクラの設計図作成にも役立つかもしれませんね。

コメント

タイトルとURLをコピーしました