image_merger.rb 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. require 'rmagick'
  2. include Magick
  3. def append_image(image1_in, images_in, image_out)
  4. i = Magick::ImageList.new(image1_in,images_in)
  5. if i.append(true)
  6. u.write(image_out)
  7. end
  8. end
  9. def merge_image(image_array, image_out, output_width, output_height, xaxis, yaxis, image_width, image_height)
  10. i = Magick::ImageList.new(*image_array)
  11. v = Magick::ImageList.new
  12. arr = []
  13. i.each.with_index do |item, index|
  14. if image_width[index] && image_height[index]
  15. i[index] = item.resize(image_width[index], image_height[index])
  16. end
  17. if xaxis[index] && yaxis[index]
  18. v.new_image(output_width, output_height) { self.background_color = "transparent" }
  19. i[index] = v.composite(i[index], xaxis[index], yaxis[index], OverCompositeOp).write(image_out + index.to_s + ".png")
  20. else
  21. i[index].write(image_out + index.to_s + ".png");
  22. end
  23. arr << image_out + index.to_s + ".png"
  24. end
  25. i = Magick::ImageList.new(*arr)
  26. i = i.flatten_images();
  27. i.write(image_out + ".png")
  28. end