#!/usr/bin/ruby # coding: utf-8 require "mini_magick" # 画像ファイルの読み込み image = MiniMagick::Image.open("input.png") # 画像の幅 width = image.width # 画像の高さ height = image.height # 読み込んだ画像を配列にする pix1 = image.get_pixels # 書き込む画像用の配列を用意する pix2 = Array.new(height) { Array.new(width) } # y座標を反転する (0..(height - 1)).each do |y2| (0..(width - 1)).each do |x2| x1 = x2 y1 = height - y2 - 1 pix2[y2][x2] = pix1[y1][x1] end end # 配列から画像にする image = MiniMagick::Image.get_image_from_pixels(pix2, [width, height], "rgb", 8, "png") # 画像ファイルの書き込み image.write("output.png")