Как получить изображение из буфера обмена в Ruby - PullRequest
0 голосов
/ 30 декабря 2018

Я пытаюсь сделать это, используя 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

Проблема решена, спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...