PHP-GetImgFromClipboard is a tool that allows you to get image on the clipboard(usually copy to the clipboard by taking a screenshot or copy from web page) and save it to an image file like jpg or png.
composer require xiebruce/php-get-image-from-clipboard
Actually, php can not get image on the clipboard directly, so this tool is rely on other tools.
For macOS, it relies on pngpaste, so you should install pngpaste first:
brew install pngpaste
For Windows 10, it's free to use, nothing need to be install.
For Windows 7, you need to update Powershell. Download Powershell update package "Win7AndW2K8R2-KB3191566-x64.zip" from here: https://www.microsoft.com/en-us/download/details.aspx?id=54616, then update and restart.
Before update, you can check the Powershell version. Click "Start" menu on the bottom right corner, input "powershell" to search, then powershell shows up like this:
Click to open it and type this command:
$PSVersionTable
Now you can see, before update, the Powershell version is 2.0:
After update, the Powershell version is 5.0:
For Linux Desktop System(e.g. Ubuntu, Manjaro, CentOS etc.) , you need to install xclip
.
On Ubuntu:
apt install xclip
I didn't test other Linux distributions, but it should be work as long as you install xclip
.
<?php
require 'vendor/autoload.php';
use GetImgFromClipboard\GetImgFromClipboard;
$obj = new GetImgFromClipboard();
switch (PHP_OS){
case 'Darwin':
// For macOS, save screenshot to Desktop
# /Users/youusername/Desktop/ScreenShot.jpg
# /Users/youusername/Desktop/ScreenShot.jpg
$savedImgPath = '/Users/bruce/Desktop/ScreenShot.jpg';
break;
case 'WINNT':
// For Windows, save screenshot to Desktop
# C:\Users\youusername\Desktop\ScreenShot.jpg
# C:\Users\youusername\Desktop\ScreenShot.png
$savedImgPath = 'C:\Users\youusername\Desktop\ScreenShot.png';
case 'Linux':
// For Linux, save screenshot to Desktop
# /home/yourusername/Desktop/ScreenShot.jpg
# /home/yourusername/Desktop/ScreenShot.png
$savedImgPath = '/home/yourusername/Desktop/ScreenShot.jpg';
}
$savedImgPath = $obj->save($savedImgPath);
echo $savedImgPath . "\n";
Thanks to octan3's img-clipboard-dump, I use it to get image from clipboard on Windows in my Project.