Я пытаюсь сделать это, используя 2 драгоценных камня: win32-clipboard
и clipboard
, но я не могу этого сделать.
win32-clipboard
:
include Win32
# I don't know what is this buffer, BM = BMP Images but the '??????' is the problem
Clipboard.data(Clipboard::DIB)[0..5000] # => BMB→O B ( ?♣ ?♥ ☺ ♥ →O ? ?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ???...
Clipboard.data(Clipboard::BITMAP) #=> FFI::NullPointerError
clipboard
:
Clipboard.paste # => ""
Я бы хотел получить буфер изображения, Gosu # Image или RMagick # Image.
Большое спасибо!
Редактировать : Есть ли способ получить буфер с C ++ и загрузить его в Ruby?
У меня все хорошо, Clipboard.data(Clipboard::DIB)
вернуть буфер, но без заголовка BMP, и я не знаю, какполучить ширину и высоту изображения, однако я сохраняю изображение и затем загружаю его с помощью gosu gem (Gosu # Image) следующим образом:
buffer = Win32::Clipboard.data(win32::Clipboard::DIB)
File.open("image.bmp", "wb") do |file|
file.write(buffer)
end
image = Gosu::Image.new("image.bmp")
image.width # => 450
image.height # => 450
Проблема решена, спасибо!