amachangがjavaでAAを画像にしてたのでpythonでやってみた。(ら、もうすでにやってる方がいました。)
やる夫のAAをコピーしてくる。私は「お前のうんこで地球がやばい」やつが好きなのでこれをごっそり持ってくる。で、yaruo.aaとかってファイルにする。
pythonでスクリプトを起動すると、ディレクトリ内の*.aaファイル(テキスト)を全部イメージにします。
png形式でAAイメージのできあがり。わほーい。
コード
※ipagp-mona.ttfが必要です。
# coding: utf-8
import sys, os, glob
from time import gmtime, strftime
from PIL import Image, ImageFont, ImageDraw
imgSize = ( 460, 300 )
iPhoneSize = ( 480, 320 )
font = ImageFont.truetype( "ipagp-mona.ttf", 17 )
files = glob.glob('*.aa')
for file in files:
# lines = open( file ).read().decode( 'cp932' ).splitlines()
lines = unicode( open( file ).read().decode( 'utf-8') ).splitlines()
width, height = max( font.getsize( line ) for line in lines )
img = Image.new( "RGB", ( width, height * len( lines ) ), "#FFFFFF" )
draw = ImageDraw.Draw( img )
for idx, line in enumerate( lines ):
draw.text( ( 0, idx * height ), line, font = font, fill = "#000000" )
stcRate = 0
isCmp = 0
setRange = range( 100, 1, -1 )
if imgSize[ 0 ] > img.size[ 0 ] and imgSize[ 1 ] > img.size[ 1 ]:
isCmp = 1
setRange = range( 1, 500 )
for rate in setRange:
stcRate = ( ( ( rate - isCmp ) * .01 ) + isCmp )
if isCmp == 1:
if imgSize[ 0 ] < img.size[ 0 ] * ( ( rate * .01 ) + isCmp ) or imgSize[ 1 ] < img.size[ 1 ] * ( ( rate * .01 ) + isCmp ):
break
else:
if imgSize[ 0 ] > ( img.size[ 0 ] * ( ( rate * .01 ) + isCmp ) ) and imgSize[ 1 ] > ( img.size[ 1 ] * ( ( rate * .01 ) + isCmp ) ):
break
print "rate : " + str( stcRate ) + ' file : [ ' + file + ' ] ' + str( img.size ) + ' > ' + str( ( int( img.size[ 0 ] * stcRate ), int( img.size[ 1 ] * stcRate ) ) )
img = img.resize( ( int( img.size[ 0 ] * stcRate ), int( img.size[ 1 ] * stcRate ) ), Image.ANTIALIAS )
base = Image.new( "RGB", iPhoneSize, "#FFFFFF" )
base.paste( img, ( ( base.size[ 0 ] - img.size[ 0 ] ) / 2, ( base.size[ 1 ] - img.size[ 1 ] ) / 2 ) )
base.save( file + ".png" )

















