Таким образом, я сыт по горло этим раздражением и сделал обходной путь.
Есть две части к этому:
- Крошечная утилита, которую я написал, чтобы сохранить изображение буфера обмена в файл .png
- AutoHotKey сценарий
Сценарий AutoHotKey проверяет, активен ли в данный момент Photoshop, и если да, то перехватывает комбинацию клавиш Ctrl
+ V
, а затем запускает утилиту.
Если утилита сохранила изображение %TEMP%\clip.png
, комбинация клавиш Shift
+ Ctrl
+ F12
отправляется в Photoshop, который я сопоставил с действием Photoshop, чтобы поместитьclip.png
файл в текущий открытый документ.
Если утилита не сохранила изображение, стандартное Ctrl
сочетание V
клавиш + отправляется в Photoshop, и выполняется стандартная вставка.
Весь исходный код доступен здесь: https://github.com/SilverEzhik/ClipboardToPNG , а утилиту можно скачать здесь: https://github.com/SilverEzhik/ClipboardToPNG/releases.
Чтобы создать действие Photoshop, просто создайте новое действие с комбинацией клавиш, сопоставленной с Shift + Ctrl + F12 (или измените комбинацию в файле скрипта), а затем во время записи перейдите к File
> Place Embedded...
и вставьте %TEMP%\clip.png
в поле имени файла.
Ниже приведен исходный код сценария AHK. Если вы ранее не использовали AutoHotKey, установите его, затем сохраните код в filename.ahk
файл в том же каталоге, что и утилита ClipboardToPNG.exe, а затем просто запустите его.
DoPhotoshopPaste() {
RunWait, %A_ScriptDir%\ClipboardToPNG.exe ; run utility, wait for it to complete
if (ErrorLevel == 0) { ; if error code is 0
SendEvent, +^{F12} ; press Shift+Ctrl+F12 to run the designated Photoshop action to paste
}
else {
SendEvent, ^v ; else, just perform a standard paste.
}
}
#IfWinActive ahk_exe Photoshop.exe ; only activate this hotkey when photoshop is active
^v::DoPhotoshopPaste()
#IfWinActive
.png
Файл или его растровый , пока он будет открыт в редакторе / зрителя? Если это файл, то Photoshop (должен) сможет правильно открыть файл, прозрачность и все. Если это фактические пиксели изображения, то это зависит от исходной программы и от того, помещает ли она данные прозрачности в буфер обмена или нет.