0

すべてのバージョンに適用したい変換のコレクションがあります。minimagick の resize_and_pad メソッドのソースを見てきましたが、指定された場合はブロックを生成するようです。「プロセス」を呼び出すときに、そのブロックをメソッドに取得するにはどうすればよいですか?

do_everything_else = proc { |img|
    img.format('jpg') do |i|
        i.quality 100
        i.antialias
        i.background :white
        i.flatten
        i.unsharp '0.3x0.3+5+0'
    end
}
version :croppable, :if => :new_upload? do
    # This results in 'too many arguments' error...
    process :resize_and_pad => [1200, 1200, 'white', 'Center', do_everything_else]
end
4

1 に答える 1

1

答えは次のとおりです。process :resize_and_pad => [1200, 1200, 'white'] { |img| do_everything_else.call img }

なぜ私はちょうど使用できないのか分かりませんprocess :resize_and_pad => [1200, 1200, 'white'] do_everything_else

編集: キャンセルしてください。何も起こりません! ブロックも実行されません...そこに直接ブロックを入れ、「raise 'WTF'.inspect」も入れましたが、エラーは表示されませんでした。これを行う方法があるかどうかはわかりません...「プロセス」を使用してメソッドにブロックを渡す方法がまったくないため、minimagick のメソッドの yield(img) は役に立たないようです。

于 2013-10-29T01:18:24.607 に答える