So-net無料ブログ作成
検索選択

iPhone アプリの LaunchImage 作成もめんどくさすぎて死にそう [Imagemagick]

LaunchImage は横着して、真ん中にアイコンをおいて、"Loading ..." という文字をつけたものにしたいが、これも何種類ものサイズを作らなければならない。ちょっと複雑なので、rmagick というのを使ってみた。

使い方は mac のターミナルで、真ん中におく icon.png を指定するだけ。
ruby ./makelaunchimage.rb icon.png

できた画像はこんな感じ。
Default-Portrait.png
Default.png

---以下 makelaunchimage.rb --
# -*- coding: utf-8 -*-
require 'RMagick'
include Magick

DEFAULT_FONT="/Library/Fonts/ヒラギノ丸ゴ\ Pro\ W4.otf"
DEFAULT_TEXT_COLOR="DodgerBlue"
DEFAULT_FONT_SIZE=20

def draw_text(draw, x, y, text, size=DEFAULT_FONT_SIZE, color=DEFAULT_TEXT_COLOR, font=DEFAULT_FONT)
  draw.font = font 
  draw.stroke = color
  draw.text(x, y, text)
  draw.pointsize=size
  draw.text_antialias = true
  draw.fill = color
end

def create_launch_image(w, h, iconfilename, outfilename)
  #load icon
  logo = Magick::Image.read(iconfilename).first

  #create base image
  image = ImageList.new
  image.new_image(w, h) {
    self.background_color = "black"
  }

  #place icon in center of base image
  x = (image.columns-logo.columns)/2  
  y = (image.rows-logo.rows)/2
  image.composite!(logo, x, y, Magick::OverCompositeOp)

  #write text
  pen = Draw.new
  draw_text(pen, x, y+logo.rows+25, "loading ...")
  pen.draw(image)

  image.write(outfilename)
end

if ARGV.length == 0 then
  printf("need to specify icon file\n")
  exit 1
end

iconfilename=ARGV[0]
if !File.exist?(iconfilename) then
  puts "#{iconfilename} does not exist"
  exit 1
end

create_launch_image(640,1136,iconfilename,"Default-568@2x.png")
create_launch_image(768,1024,iconfilename,"Default-Portrait.png")
create_launch_image(1536,2048,iconfilename,"Default-Portrait@2x.png")
create_launch_image(640,960,iconfilename,"Default.png")

---

参考
日々是鍛錬
山本隆の開発日誌
nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:パソコン・インターネット

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

この記事のトラックバックURL:

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。