ホーム    デザイン演習Ⅰ・Ⅱ   

デザイン演習 可能性の模索


  今回は、pythonの可能性の模索を行った。

  <グループでの話し合い>

  グループでは、音声で文を入力し、その文を要約、要約文を自動でhtmlのウェブページにし、自動で配色するコードの作成を考えた。
  その中で、自動で配色するコードに注目し、作成を進めた。   

取り組み1
  1. import tkinter
  2. import tkinter.filedialog
  3. import random
  4. import datetime
  5. import os
  6. from PIL import ImageGrab
  7. #ランダムに色を生成する
  8. def make_hexcolor():
  9.     
  10.     color_cd = "";
  11.     for i in range(0, 3):
  12.         color_cd = color_cd + format(int(random.randrange(255)), 'x').zfill(2)
  13.     return color_cd
  14. def change_color():
  15.     global canvas
  16.     for ck in range(0, len(canvas_keys)):
  17.         key_name = canvas_keys[ck]
  18.         tagnm = "fill_" + key_name #変更したい四角のタグ名を生成する
  19.         
  20.         #タグ名で色を変更する
  21.         canvas.itemconfigure(tagnm, fill="#" + make_hexcolor())
  22. root = tkinter.Tk()
  23. canvas_items = {}
  24. canvas_keys = ["main", "second", "third"]
  25. root.title(u"color_mgr") #ウィンドウタイトルを指定
  26. rect_size = 125 #一つの四角のサイズ
  27. canvas_keys = ["main", "second", "third"] #色表示エリアの名前を仮で指定
  28. max_size = rect_size*len(canvas_keys) #canvasの最大幅をあらかじめ計算
  29. root.geometry(str(max_size) + "x500") #ウィンドウサイズを指定
  30. #表示するためのcanvasを生成する
  31. canvas = tkinter.Canvas(root, width=max_size, height=rect_size)
  32. #カラー表示部分の設置
  33. for ck in range(0, len(canvas_keys)):
  34.     key_name = canvas_keys[ck]
  35.     canvas_items[key_name] = {}
  36.     tagnm = "fill_" + key_name #canvasに追加する要素のタグ名を生成
  37.     
  38.     #fillで塗りつぶし色を指定します 初期値は真っ白を指定しています。
  39.     canvas.create_rectangle(rect_size * ck, 0, (rect_size * ck) + rect_size, rect_size, fill="#ffffff", tag=tagnm)
  40. #canvasをウィンドウに配置する
  41. canvas.grid(row=0, column=0, columnspan=4)
  42. btn_0 = tkinter.Button(root, text="色を変える", command=lambda: change_color(), width=10, height=2)
  43. btn_0.grid(row=3, column=1, columnspan=2)
  44. change_color()
  45. root.mainloop()

  上記のコードでは、ランダムに配色するコードを参考にし、4色表示されていた機能を3色へ変更、また、画像の保存機能はいらなかったので削除した。
  ランダムに表示された色のカラーコードを表示させたかったが、表示の方法が分からず断念。

取り組み2
  1. import random
  2. color1 = ["#"+''.join([random.choice('0123456789ABCDEF') for j in range(6)])]
  3. print(color1)
  4. color2 = ["#"+''.join([random.choice('0123456789ABCDEF') for j in range(6)])]
  5. print(color2)
  6. color3 = ["#"+''.join([random.choice('0123456789ABCDEF') for j in range(6)])]
  7. print(color3)

  上記のコードでは、取り組み1の断念から、カラーコードの表示を先に行うように変更した。
  しかしながら、カラーコードで選ばれた色の表示が上手く行かず断念。

  <感想>

  今回はpythonの可能性の模索を行い、コードを作成した。
  表示されたデータの変換が出来ず、断念してしまう結果になってしまった。
  今後は、上手くいかない時は原因を追及しつつ、別の方法で上手くいかないか、さまざまな方法を試すようにしていきたい。

参考文献