1

Ruby 1.9.3을 사용하여 축소판 콜라주를 만들고 있습니다. 다음과 같이 미리보기가로드되는 :MiniMagick Image.create ArgumentError를주는 메소드

image1 = MiniMagick::Image.open("1.jpg") 

image2 = MiniMagick::Image.open("2.jpg") 
image2.rotate "-45>" 

image3 = MiniMagick::Image.open("3.jpg") 
image3.rotate "45>" 

나는 ImageMagick이 나 MiniMagick 전에 사용한 적이와 나는 minimagick GitHub의 페이지에서 이미지를 합성에 대한 코드를 가지고있다.

collage = MiniMagick::Image.create "jpg", false do |c| 
    c.size "1024x768" 
    c.canvas "white" 
end 

collage = collage.composite image1 do |c| 
    c.gravity "center" 
end 

collage = collage.composite image2 do |c| 
    c.gravity "east" 
end 

collage = collage.composite image3 do |c| 
    c.gravity "west" 
end 

collage.write("output.jpg") 

문제는 Image.create 명령에서 발생합니다. 나는

$ ruby prog.rb 

나는 다음과 같은 오류

/Users/vinayshenoy/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/tempfile.rb:250:in `size': wrong number of arguments (1 for 0) (ArgumentError) 
from prog.rb:14:in `block in <main>' 
from /Users/vinayshenoy/.rvm/gems/ruby-1.9.3-p0/gems/mini_magick-3.4/lib/mini_magick.rb:158:in `call' 
from /Users/vinayshenoy/.rvm/gems/ruby-1.9.3-p0/gems/mini_magick-3.4/lib/mini_magick.rb:158:in `create' 
from prog.rb:13:in `<main>' 

스크립트 파일은 이미지와 같은 디렉토리를 얻을 사용하여 파일을 실행합니다. 필자는 image1, image2 및 image3을 별도의 파일에 작성하여 테스트했으며 모두 작동합니다. 도와주세요.

+0

https://github.com/minimagick/minimagick/issues/59를 참조하십시오. –

답변

1

오류 메시지가 약간 이상하지만 http://www.imagemagick.org/script/command-line-options.php?#composite의 설명서에 따르면 합성에는 3 개의 인수 - 결합하려는 두 이미지 (1 행에서 만든 이미지와 이미지 1이라는 이미지)와 그레이 스케일 '마스크'(이 경우에는 image2).

즉, 세 가지 구성 중 하나 하나를 모두 저장해야하는 것처럼 보입니다.

+0

오류가 합성되지 않고 Image.create에 있습니다. Image.create를 사용하는 대신 배경 이미지를 열었고 프로그램이 정상적으로 작동했습니다. –

+0

@VinaySShenoy 당신도 비슷하게 할 수 있습니다 콜라주 = MiniMagick :: Image.create (".jpg", validate = false) {} arguments = % W (-size # {width} x # {height} xc : white # collage.path}) cmd = MiniMagick :: CommandBuilder.new ("convert", * arguments) collage.run (cmd) –

관련 문제