(2007.10.31)
ケータイメールなどをPCで表示するために、絵文字の画像ファイルを用意したいことがあります。au (KDDI) が絵文字データファイルを配布しているので、それをPNG形式に変換します。
元データは次の場所からダウンロードできます;
弊社は、お客様に対して、絵文字の表示を可能としたEZweb対応移動機向けホームページ、コンテンツ又はアプリケーション (メールの閲覧、保存ソフトを含む) の開発及びその提供を目的とする場合に限り、・・・
とあるので、ケータイ関連以外での使用は不可です。
ファイル形式がイラストレータ (.ai) なので、PNG形式に変換してやります。元のデータは、余白があったりなかったりで、大きさがまちまちです。
ImageMagick の convert コマンドが簡単です。画像情報は コマンドで表示できます。
convert は、例えば、次のように書きます。
convert 入力ファイル名 -trim -resize 24x24 -transparent "#FFFFFF" 出力ファイル名
-transparent は色を指定するので、余白の色が違う画像や、画像の内部で白を使っていると、どうも今ひとつてす。-trimのように余白を認識してくれるといいのですが、方法が分かりませんでした。
また、-resize でサイズを指定すると、小さめの画像も指定した大きさに合うように縮小するので、ほかの画像と同じ大きさになってしまいます。これだと個別に修正しないといけません。
identify コマンドでそれぞれの元画像ファイルを見てみると、24x24ドットを基本とし、26x26ドットのものが最大のようでした。
Rubyで一括変換します。次のように書きました。ファイル名が画像の名前になっているので、別ファイルに保存します。
#!/usr/bin/ruby
SRC_DIR = "/home/hori/icon_image"
OUTPUT_DIR = "/home/hori/au_img_new"
File.open(OUTPUT_DIR + "/list.txt", 'w') {|listf|
Dir.glob(SRC_DIR + "/*.ai").each {|inname|
base = File.basename(inname, ".ai")
code = base[0, 3]; name = base[3..-1]
listf.puts "#{code}\t#{name}"
`convert '#{inname}' -trim -transparent white -resize 75% #{OUTPUT_DIR}/#{code}.png`
}
}
これで画像ファイルの出来上がりです。
Netsphere Laboratories http://www.nslabs.jp/
[PR]