image_merger.rb 1.0 KB

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