#!ruby -Ks # -*- mode: ruby; encoding: sjis -*- # Last updated: <2015/12/09 23:44:26 +0900> # # DXRubyのImageをアルファチャンネル付で保存できないかテスト # chunky_pngモジュールを利用して32bit PNGに変換してから保存する。 require 'dxruby' require 'chunky_png' # DXRubyのImageを、32bit(アルファチャンネル付)pngで保存する。 # # @param [String] filename 保存ファイル名 # @param [Object] img DXRubyのImage # def save_dxruby_image(filename, img) w = img.width h = img.height png = ChunkyPNG::Image.new(w, h, ChunkyPNG::Color::TRANSPARENT) h.times do |y| w.times do |x| a, r, g, b = img[x, y] png[x, y] = ChunkyPNG::Color.rgba(r, g, b, a) end end png.save(filename, :fast_rgba) end # ここからメイン # 仮Imageを作成 img = Image.new(320, 240) img.line(0, 0, 320, 240, C_BLUE) # 仮Imageを保存してみる save_dxruby_image("test3.png", img) Window.loop do break if Input.keyPush?(K_ESCAPE) Window.draw(0, 0, img) end