Файл входного изображения Ruby

Я использую Ruby для написания кодека для сжатия изображения. Прямо сейчас я использую жестко закодированный файл изображения, но я хотел бы получить файл изображения от пользователя.

Каким будет правильный синтаксис для сбора этой информации?

Вот что у меня есть на данный момент:

# Set the path for the input image
path = "#{File.dirname(__FILE__)}/../../Images/my_image.png"
image = ImageList.new(path)

Затем я манипулирую изображением с помощью RMagick, но это не имеет значения. Каков правильный способ разрешить пользователю предоставить мне изображение из его текущего пути в консоли?

Спасибо!


person ardavis    schedule 24.08.2011    source источник
comment
Вы имеете в виду из командной строки? Что-то вроде your_script pancakes.png?   -  person mu is too short    schedule 24.08.2011
comment
Да, что-то вроде этого было бы неплохо. Или даже пусть скрипт запросит у пользователя файл. Что эффективнее и проще.   -  person ardavis    schedule 24.08.2011
comment
Посмотрите ответы ARGV ниже, если вы просто хотите что-то сделать из командной строки, интерактивный запрос будет более трудоемким.   -  person mu is too short    schedule 24.08.2011


Ответы (2)


Вы вызываете свой скрипт из командной строки следующим образом: $ myscript.rb path_to_file.jpg

и в вашем сценарии вы можете получить доступ к строке с помощью ARGV, например.

ARGV.each do |argument|
  # ...
end
person pdu    schedule 24.08.2011

Распространенным способом было бы просто использовать старый добрый ARGV (обратите внимание, что в отличие от другие языки НЕ включают название программы). Если у вас есть обязательные аргументы, вы можете сделать что-то вроде:

unless ARGV.size > 0
    puts "Usage: $0 file_name [second_file]
end

Вы также можете использовать один из различных анализаторов параметров, таких как OptionParser или Trollop, если вы хотите что-то вроде

script_name --input input_file --output output_file
person Michael Kohl    schedule 24.08.2011