SyntaxHighlighter

2014年8月24日日曜日

EmEditor用AviSynth構文定義ファイル

EmEditorに魂を売り渡し(4000円払って)、タブ移動の順番が期待通りになるようにした(Free版だと開いた順で訳が分からなくなる)。
ついでにちょっと構文定義ファイルを見てMarkdownの定義を入れたりしたついでにAviSynth用の定義ファイルを書いてみた。
確か、Pythonみたく3連ダブルクオートが文字列扱いになるはずなんだけど、Pythonでは複数行コメントを使って実現している。AviSynthでは/* */コメントがあるのでそれは使えない。まあ、ダブルクオート2連続→空文字列とみなす、3つ目のダブルクオートで文字列開始、終端の最初のダブルクオートで文字列終了、残り2つで空文字列とみなす、で対応できている振りをしているから良いか・・・

FirefoxのユーザCSSでテキストファイルの文字を拡大してみる

こんな感じのユーザCSSをC:\Users\<ユーザ>\AppData\Roaming\Mozilla\Firefox\Profiles\hogehoge.default-fugafuga\chrome\userContent.cssという名前で保存する。

2014年8月16日土曜日

Excelの32000件の壁にPythonモジュールで対抗してみる 兼Gistの使い方勉強

まずはCSVで9万件のデータを用意してみる
そして、Xlsxwriterモジュールを使って、3万件ずつグラフにして挿入する
xls/xlsx書き込み系モジュールは種類がいろいろあるけど、今のところXlswriterモジュールが一番便利な気がしている。

2014年8月3日日曜日

PILからOpenCVへの変換

OpenCVのフォントが残念すぎるのでPILを使うことを視野に入れよう。そのためにはPIL→OpenCVの変換が必要になるのでちょっとやってみよう。
from PIL import Image
import cv2
import numpy as np

pil_image = Image.open('hotarun.jpg')
cv_image = cv2.cvtColor(np.array(pil_image) , cv2.COLOR_RGB2BGR)
cv2.imwrite("hotarun.png",cv_image)
こんな感じで良いのか思ってたより短くて何より

2014年8月2日土曜日

OpenCVでAVIファイル作成をやってみる

多数のPNGなどの画像ファイルから動画ファイルを作成する方法について調べてみた。
ImageMagickとかffmpegとかあるみたいだけどOpenCVやAviSynthを使うのがよさそうだ。
# coding: utf-8 -*-
from PIL import Image, ImageDraw, ImageFont

font = ImageFont.truetype('Consola.ttf', 24, encoding='utf-8')

def get_size(font, text):
    # フォントのサイズを取得するダミーのImage
    img_tmp = Image.new('RGBA', (128,128))
    draw_tmp = ImageDraw.Draw(img_tmp)

    w,h = draw_tmp.textsize(text, font)
    return (w,h)

w,h = get_size(font, "000")



for idx in range(100):
    # デフォルト背景色の 128x128 サイズのキャンヴァスを用意する。
    img = Image.new('RGB', (128, 128))
    # Draw 関数でオブジェクトを作成。
    draw = ImageDraw.Draw(img)
    # 画面の左上にテキストを描画する
    draw.text((0,1), '{0:03d}'.format(idx), font=font, fill='white')
    ## 画面の右下隅にテキストを描画する。
    #draw.text((128-w-10, 128-h-10), '{0:03d}'.format(idx), font=font, fill='white')
    img.save('{0:03d}.png'.format(idx))
画像の生成は(なんとなく)PILを使ってみる。

そして動画の生成はOpenCVを使ってみる。
# coding: utf-8

import cv2

isColor = 1
fps     = 3  # or 30, frames per second
frameW  = 128 # images width
frameH  = 128 # images height
fourcc  = cv2.cv.CV_FOURCC(*'ULRG')
#fourcc = cv2.VideoWriter_fourcc(*'ULRG')
writer = cv2.VideoWriter("video.avi",fourcc, fps,(frameW,frameH),isColor)

fontface = cv2.FONT_HERSHEY_PLAIN
fontscale = 1.0
color = (255,199,0)
thickness = 1

#-----------------------------
#Writing the video file:
#-----------------------------
nFrames = 100; #number of frames
for i in range(nFrames):
    imgfile = "{0:03d}.png".format(i)
    img = cv2.imread(imgfile) #specify filename and the extension
    
    # ファイル名を描画
    (w,h),baseline = cv2.getTextSize(imgfile, fontface, fontscale, thickness)
    print "w:{0:d} h:{1:d} baseline:{2:d}".format(w,h,baseline)
    cv2.putText(img, imgfile, (thickness,img.shape[0]-baseline), fontface, fontscale, color, thickness, cv2.CV_AA)
    #cv2.line(img, (0,50), (100,50), (255,0,0), 1)
    # add the frame to the video
    writer.write(img)

writer.release()
OpenCVで文字描画する際はcv2.CV_AAを指定しないと汚くて読めたもんじゃないことに注意。 あと、左下に描画しているつもりだけど、計算式が合ってない気がする・・・

SyntexHighlighterの導入

こことかここを参考にしてやってみているんだけど上手くいかない・・・

追記
出来た?

print "Hello World"
更に追記
プレビューだと上手く行かないのかな?

2014年6月25日水曜日

まさか「しりとり 論文」でぐぐって自分の名前がすぐに出るとは思っていなかった