RubyでCGIスクリプトを作る下準備・アクセスカウンターもどきのCGI

GDライブラリを使ってPNG画像の表示。

#!/usr/local/bin/ruby

#
# アクセスカウンターもどき・デモ
#
# 0.png, 1.png ... 9.png を自分で用意する
#

require "GD"

W = 8  # 0.png 〜 9.png の画像の幅
H = 16 # 0.png 〜 9.png の画像の高さ
N = 3  # 表示する桁数

def printpng(count)
  im = GD::Image.new(W * N, H)

  count = count % (10 ** N)

  n = 0
  sprintf("%0#{N}d", count).split("").each { |num|
    numimg = GD::Image.new_from_png(num + ".png")
    numimg.copy(im, W * n, 0, 0, 0, W, H)
    n = n + 1
  }

  print "Content-Type: image/png\n\n"
  im.png STDOUT
end

cnt = rand(10000)
printpng(cnt)