Скопировать изображение из буфера обмена в файл


28

Можно ли взять изображение из буфера обмена и вывести его в файл (используя X)?

Я могу сделать это с текстом легко:

$ xclip -selection c -o > file.text

Но когда я пробую выше с изображением ничего не написано.


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

Ответы:


49

Вы действительно можете сделать это с xclip. Секретом является -tопция, которая ссылается на раздел 2.6.2 ICCCM . Который я признаю, я не виню вас за то, что вы не читали ... В любом случае, например, я просто щелкнул правой кнопкой мыши ваш аватар в Chromium и выбрал «Копировать изображение»:

  1. Посмотрите, какие цели доступны:

    $ xclip -selection clipboard -t TARGETS -o
    TARGETS
    image/png
    text/html
    
  2. Обратите внимание на image/pngцель; идти вперед и получить его:

    $ xclip -selection clipboard -t image/png -o > /tmp/avatar.png
    $ see /tmp/avatar.png    # yep, that's it
    

ПРИМЕЧАНИЕ. Некоторые исследования показывают, что вам необходим xclip из SVN ревизии 81 (с апреля 2010 г.) или более поздней версии, чтобы иметь необходимую -tопцию. Или примените патчи самостоятельно.


Я использую 0.12, тот, который предлагается, pacmanпоэтому мне придется получить версию для апстрима. Благодарность!
Лерп

Ошибка: целевое изображение / png недоступно, это будет старый. Debian растягивается
Stígandr

@ Stígandr Я подтвердил, что это все еще работает на моей машине, на которой выполняется тестирование Debian (растяжение). Может быть, вы скопировали JPEG или другой тип изображения? Вероятно, лучше задать новый вопрос, чем отлаживать его в комментариях.
Дероберт

3

xclip не работает с изображениями на моем компьютере (svn84-4):

$ xclip -selection clipboard -t image/png -o
Error: target image/png not available

Но есть другая программа, которая делает скриншот и вставляет его в файл, очень просто: scrot :

scrot /tmp/myImage.png
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.