Copy an image to clipboard from the Mac terminal
I have an image, Test.png
, which I want to copy to the clipboard from the terminal as part of a Bash script so I can paste it into Word.
I've tried using pbcopy
like this:
$ cat Test.png | pbcopy
However, when I try to paste the contents of the clipboard into Word, I get multiple pages of random characters. I assume the clipboard is flagged as containing text, so pastes a text representation of the image bytes:
How can I correctly copy an image from the terminal? This appears to happen with all PNG images, but if it helps the image that I'm using is this one:
Solution 1:
Here is a link to an answer by Chris Johnsen on a related question that does what you're looking for. (In that case it's an HTML file, but it works for our needs here.)
https://apple.stackexchange.com/a/15542
Quote from the original answer:
osascript can ... be used as a hash-bang interpreter (since 10.5). Put this in a file (e.g. file-to-clipboard)
#!/usr/bin/osascript
on run args
set the clipboard to POSIX file (first item of args)
end
Make the file executable (chmod +x /path/to/where/ever/you/put/file-to-clipboard
). Then run it like so:
/path/to/where/ever/you/put/file-to-clipboard ~/Desktop/ded.html
If it is stored in a directory in the PATH, then you can omit the path to the “script” file.
Solution 2:
I faced this problem and tried the other answers here and on related questions, but none of them worked - then I found this script, and it worked beautifully: https://gist.github.com/mwender/49609a18be41b45b2ae4
If you want an alternative, I also found this repo which worked: https://github.com/mike-neck/imgcopy
I believe you need to have xcode installed to build the second one though.