ホーム
デザイン演習Ⅰ・Ⅱ
デザイン演習 可能性の模索
今回は、pythonの可能性の模索を行った。
<グループでの話し合い>
グループでは、音声で文を入力し、その文を要約、要約文を自動でhtmlのウェブページにし、自動で配色するコードの作成を考えた。
その中で、自動で配色するコードに注目し、作成を進めた。
取り組み1
- import tkinter
- import tkinter.filedialog
- import random
- import datetime
- import os
- from PIL import ImageGrab
- #ランダムに色を生成する
- def make_hexcolor():
-
- color_cd = "";
- for i in range(0, 3):
- color_cd = color_cd + format(int(random.randrange(255)), 'x').zfill(2)
- return color_cd
- def change_color():
- global canvas
- for ck in range(0, len(canvas_keys)):
- key_name = canvas_keys[ck]
- tagnm = "fill_" + key_name #変更したい四角のタグ名を生成する
-
- #タグ名で色を変更する
- canvas.itemconfigure(tagnm, fill="#" + make_hexcolor())
- root = tkinter.Tk()
- canvas_items = {}
- canvas_keys = ["main", "second", "third"]
- root.title(u"color_mgr") #ウィンドウタイトルを指定
- rect_size = 125 #一つの四角のサイズ
- canvas_keys = ["main", "second", "third"] #色表示エリアの名前を仮で指定
- max_size = rect_size*len(canvas_keys) #canvasの最大幅をあらかじめ計算
- root.geometry(str(max_size) + "x500") #ウィンドウサイズを指定
- #表示するためのcanvasを生成する
- canvas = tkinter.Canvas(root, width=max_size, height=rect_size)
- #カラー表示部分の設置
- for ck in range(0, len(canvas_keys)):
- key_name = canvas_keys[ck]
- canvas_items[key_name] = {}
- tagnm = "fill_" + key_name #canvasに追加する要素のタグ名を生成
-
- #fillで塗りつぶし色を指定します 初期値は真っ白を指定しています。
- canvas.create_rectangle(rect_size * ck, 0, (rect_size * ck) + rect_size, rect_size, fill="#ffffff", tag=tagnm)
- #canvasをウィンドウに配置する
- canvas.grid(row=0, column=0, columnspan=4)
- btn_0 = tkinter.Button(root, text="色を変える", command=lambda: change_color(), width=10, height=2)
- btn_0.grid(row=3, column=1, columnspan=2)
- change_color()
- root.mainloop()
上記のコードでは、ランダムに配色するコードを参考にし、4色表示されていた機能を3色へ変更、また、画像の保存機能はいらなかったので削除した。
ランダムに表示された色のカラーコードを表示させたかったが、表示の方法が分からず断念。
取り組み2
- import random
- color1 = ["#"+''.join([random.choice('0123456789ABCDEF') for j in range(6)])]
- print(color1)
- color2 = ["#"+''.join([random.choice('0123456789ABCDEF') for j in range(6)])]
- print(color2)
- color3 = ["#"+''.join([random.choice('0123456789ABCDEF') for j in range(6)])]
- print(color3)
上記のコードでは、取り組み1の断念から、カラーコードの表示を先に行うように変更した。
しかしながら、カラーコードで選ばれた色の表示が上手く行かず断念。
<感想>
今回はpythonの可能性の模索を行い、コードを作成した。
表示されたデータの変換が出来ず、断念してしまう結果になってしまった。
今後は、上手くいかない時は原因を追及しつつ、別の方法で上手くいかないか、さまざまな方法を試すようにしていきたい。