ぐうたらパンダはお昼寝中

 全力でだらだらしてます。ぐうたらなので、書いていることは適当です。ときどき起きては,気が向いたこと書いています。プログラミングの記事は,Qiitaで書いています.

カテゴリ:プログラム > Python

Macbook Airにpythonbrewをインストールしました。OSXを最近いじりはじめた私にはなかなか難しかったので、覚書です。

まずは下準備

  1. xcodeをインストールし、Preferenceからcommand line toolsをインストールしておく(実はcommand line toolsだけインストールできる
     

  2. pythonbrewをインストールする。

    ターミナルシェルから、pythonbrewのインストールと.bashrcへの設定の書き込みをする

    $ curl -kL http://xrl.us/pythonbrewinstall  | bash
    $ echo "source $HOME/.pythonbrew/etc/bashrc" >> .bashrc
    
続きを読む

Sublime Text 2上でなんとなくPythonをbuildできるようになったと思っていたのですが、そう甘くなかったのでした。

まずは、Python2.7でやってみます。コードはこれだけ、

# -*- coding: utf-8 -*-

print (u'テスト')

で、こんなエラーがでます。

Traceback (most recent call last):
  File "C:\test\test.py", line 3, in <module>
    print (u'テスト')
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-2: ordinal not in range(128)
[Finished in 0.1s with exit code 1]

前回、コンソールの文字コードをWindows用にcp932にセットしましたが、上のコードはutf-8なので、その関係でエラーになっています。

その当たりのPython側の事情については、こちらのサイト(参考: Pythonを学ぶ(1) HelloWorldでいきなりエラー (Python2とUnicode))に説明があります。

今回はさらにSublime 2側の事情も加わります。

続きを読む

Sublime Text 2を使い始めてみましたが、素人にはなかなか敷居が高いです。最初はメゲそうでしたが、しばらく使っているうちにだんだん分かって来ました。とはいうもののもう手放せません、と言えるほどではないです。

備忘録を兼ねて、今回は下記の設定方法について書き残しておきたいと思います。

  1. proxy
  2. 日本語のインライン変換
  3. Pythonのbuild(というかPathと文字コードだけ)
続きを読む

暇を見つけて書いていると細切れになってしまうので、これまでのところをまとめて、さらにファイルに書きだしてみます。私的には丁寧目にコードに注釈をつけました。
  • タブ区切りテキストファイル input.txtに、座標と値が、x, y, c という形で延々入力してあります。cはその座標の値です。例えば温度などです。
  • input.txtを1行ずつ読み込んで、x,yの座標とcの値を読み込んで画像ファイルを作成します。
  • 画像のサイズは1000x1000pixelとします。
  • 最期に画像をoutput.pngとして書き出します。
# -*- coding: utf-8 -*-
import Image

img = Image.new('RGB', (1000, 1000), 'white') #白紙の画像を作成
pix = img.load() #ピクセルをいじれるようにロード

#ファイルの読み込み X Y C タブ区切り
for line in open('input.txt', 'r'): #1行ずつ読み込む
    items = line.split('\t') #タブで切り離して配列に代入
    x = int(items[0])
    y = int(items[1])
    c = float(items[2])
    
    if temp <= 0: #cが0以下の判定        
        pix[x, y] = (0,0,255) #青で点を書く
    elif temp <= 10: #cが10以下の判定
        pix[x, y] = (0,255,255) #黄で点を書く
    elif temp <= 100: #cが100以下の判定
        pix[x, y] = (255,0,0) #赤で点を書く
    #cが100より大きい場合は白紙のまま

img.save("output.png") #できた画像ファイルを書き出し   
ちょうど10回目なので、このネタは一区切りにして終わりにします。

前回から、だいぶたったので復習。ライブラリを読み込んで、書き込むための白紙を用意しました。
# -*- coding: utf-8 -*-

import Image
img = Image.new('RGB', (1000, 1000), 'white')
これに書き込むわけです。

今回は書き込むのは、丸とか四角なんかの図形ではなくて、点(ピクセル)なので、二次元の座標と色だけを指定します。そのためには、あらかじめ白紙の画像(img)をloadする必要があります。img.loadとするとpixクラスが返り値になりますので、ここではそれを変数pixに代入しています。二次元の座標と色は下記のコードのように指定することができます。
pix = img.load()
pix[ x座標, y座標] = (255,255,255) # (255,255,255) は色。
(255,255,255) は色を示します。RGBカラーというやつで、赤、緑、青の光の三元色を0から255の整数値で示します。(255,255,255)は白です。座標に色を代入しているようなものですね。

これをひたすら繰り返せば、画像に絵を書くことができます。

次回は、画像ファイルへの書き出しです。

このページのトップヘ