絵の練習(模写)のためのプログラムを作った
— と り🐔 (@t0rry_) 2021年1月24日
ユーザが選んだフォルダに格納された画像ファイルを好きな枚数、好きな時間表示するだけ pic.twitter.com/K8OT1qJ5cq
こういうものを作った
なにを作ったの?
お絵かきをするにあたって同じ画像をずっと描いてもいいのだけど、とにかく時間がないので一枚を確実描くよりも量を書きたい。
それにあたって模写元の画像をたくさん入れたフォルダを指定して、その中からランダムに指定した数、指定した秒数表示するモノを作りたくなった。
(スライドショー的なや~つ)
仕組み
使ったのはGUIにTkinter、画像表示にPillowを使った。
〇:ユーザー側 ():プログラム上の処理
①フォルダの選択
(1):フォルダのパスを入力、フォルダのパスからpngファイルを抽出、数も数える
②表示したい画像数を入力
(2):エントリーから数字をインポート
③表示したい秒を入力
(3):エントリーから数字をインポート
④実行(開く)
(4):
(1)で入力した画像のリストをシャッフルする
X = フォルダの数-表示したい数
シャッフルした画像リストからX個要素を消す
for文を使ってリストを表示
プログラミングの学び方
3DCGやDTMを学ぶときは本を買って勉強していましたが、プログラミングに関しては本を一切購入していません。
ずっと下記サイトのPython3入門編を学んでいました。
大体1年間くらいかけてゆっくり学んでいきました。
(各動画を2~3回みたくらい)
まだ全部みてないや…
プログラミングでとにかく躓いたこと
paizaラーニングの良いところとして環境構築を一切することなく、サイト側ですぐにプログラミングできるところでした。
しかし、実際にプログラミングをしようとすると環境構築が必須になります。
とにかく環境構築に苦労しました。
お前は許せん Anaconda と Pillowの相性問題
とにかく初心者にとって人と違うことをすると失敗する確率が大幅に上がるため、とにかく沢山入ってお得な~みたいなイメージでインストールしたAnacondaですが…
Pillowと相性が凄く悪いです。
とにかく色々とやりました。Anaconda上でPILをアンインストールしたり、pipでインストールしてAnacondaとの競合性でエラー発生したり、そもそもimport PIL し忘れたりしました。
(今はいい感じに使えてます。)
お前高機能じゃん!VSコード
プログラミングをするソフトとして色々なソフトウェアがありますが、VSコードを選びました。理由はたまたま見ていた動画でVSコードを紹介していたからで特に特別な思い入れはないです。
VSコード凄いっすね。 関数定義の時に"""関数説明""""してあげると関数にマウスカーソル合わせると関数説明が表示されたり、自動的に変数に色付けてくれたり(エディタソフトなら普通????)。感動しました。
やっぱりあったよ 文字列、数値問題
プログラミングって文字、数字の世界なのでプログラミング側で「これは文字」「これは数字」で指定してあげないといけないシーンありますよね。
頭の中では勝手に数字でプログラミングしているのですが、Pythonちゃんは文字と扱っているみたいで「お前、文字と数字の計算できんぞ なにやってん?」と注意されちゃいました。 恥ずかしいね
デバッグの重要性に気が付く
プログラミングの入門 Hello World。表示させるためにPythonの場合はprintつかいますが、コイツ大好きになりました。
リストの処理をするときにprint関数がないと作業できないですよね。
print神だわ。print教進行します。
最後に
創作(クリエイトするもの)全般に言えることですが、区切りがつく最後までモノが作るってとても大事だなって改めて思いました。
今回のプログラミングのスタートはtkinterを使ってウィンドウを表示させるところでした。
作っている間に「あれ?これ今練習している絵を描くときのソフトできるんじゃね?」というアイデアからフローチャート作ったり、必要なライブラリ調べたりしてたら一週間で作れました。
最後まで作ったことで当初は考えていなかったリストの処理や画像の表示など新たな学びが多くありました。
ありがとうPython ありがとうHello World.