Pngファイルを選択して、次のコマンドを実行するとします。
xclip -selection clip -t image/png image.png
これで、クリップボードにその画像が表示されます。画像が入るところに貼り付ければ、期待通りに貼り付けられて良かったです。
代わりに、Firefoxのアドレスバーまたはこれを入力しているテキストフィールドでctrl + Vを押すことを検討してください。ファイルのバイナリコンテンツがテキストフィールドに逐語的に貼り付けられ、場合によってはブラウザがハングします。しばらくの間。
もちろん、そこに画像を貼り付けても意味がないことはわかっていますが、誤って貼り付けると問題が発生することがあります。
代わりに、Firefoxの[画像のコピー]ボタンを使用してコピーした画像を貼り付けた場合、貼り付けようとしても貼り付けられないため、この動作を可能にするためにクリップボードに保存できる必要があります。
画像をバイナリデータとしてテキストフィールドに逐語的に貼り付けずにクリップボードに画像を配置するにはどうすればよいですか?なんとかして画像とテキスト文字列(画像へのパスなど)の両方をクリップボードに配置し、貼り付けるときに適切なものを選択させることができれば、それは素晴らしいことです。
あなたがしたように、xclipを使用して画像をクリップボードにコピーしました。取得したターゲットのリストは次のとおりです。
> xclip -selection clip -t TARGETS -o
TARGETS
image/png
そして今、私がウェブページから画像をコピーすると、私はこれを手に入れます:
> xclip -selection clip -t TARGETS -o
TIMESTAMP
TARGETS
MULTIPLE
SAVE_TARGETS
text/html
text/_moz_htmlinfo
text/_moz_htmlcontext
image/png
image/jpeg
image/x-icon
image/x-ico
image/x-win-bitmap
image/vnd.Microsoft.icon
application/ico
image/ico
image/icon
text/ico
image/tiff
image/bmp
image/x-bmp
image/x-MS-bmp
たとえば、ターゲットをtext/htmlとして設定すると、そのような出力が得られます
> xclip -sel c -t text/html -o
<img src="..." alt="...">>
だから明らかにそれは前の答えで述べられているようにxclipの問題です
上記の答えは不完全または不正確のようです。 Mozilla Firefoxから画像をコピーした後、次の出力が得られます。
$ xclip -selection clip -t TARGETS -o
TIMESTAMP
TARGETS
MULTIPLE
SAVE_TARGETS
text/html
text/_moz_htmlinfo
text/_moz_htmlcontext
image/png
image/bmp
image/x-bmp
image/x-MS-bmp
image/x-icon
image/x-ico
image/x-win-bitmap
image/vnd.Microsoft.icon
application/ico
image/ico
image/icon
text/ico
image/jpeg
前のawnserが述べているように、「text/html」として出力すると、画像へのリンクを含む有効なhtmlドキュメントが出力されます。ただし、「image/png」(または同様のオプションのいずれか)を選択すると、生のpngデータが出力されます。
Tl; dr:xclip -selection clip -t TARGETS -o
は、貼り付けることができる形式を示します。使用する xclip -selection clip -t '$TYPE' -o
いずれかを選択します。これはファイルに直接保存でき、ほぼ期待どおりに機能します。