Así que me harté de esta molestia e hice una solución.
Hay dos piezas:
- Una pequeña utilidad que escribí para guardar la imagen del portapapeles en un archivo .png
- Un script de AutoHotKey
El script AutoHotKey comprueba si Photoshop está actualmente activo, y si es así, intercepta la combinación de teclas Ctrl
+ V
, y luego ejecuta la utilidad.
Si la utilidad guardó una imagen %TEMP%\clip.png
, la combinación de teclas Shift
+ Ctrl
+ F12
se envía a Photoshop, que he asignado a una Acción de Photoshop para colocar el clip.png
archivo en el documento abierto actualmente.
Si la utilidad no guardó la imagen, el combo estándar Ctrl
+ V
tecla se envía a Photoshop y se realiza un pegado estándar.
Todo el código fuente está disponible aquí: https://github.com/SilverEzhik/ClipboardToPNG , y la utilidad se puede descargar aquí: https://github.com/SilverEzhik/ClipboardToPNG/releases
Para crear la Acción de Photoshop, simplemente realice una nueva acción con la combinación de teclas asignada a Shift + Ctrl + F12 (o cambie la combinación en el archivo de script), y luego, mientras graba, vaya a File
> Place Embedded...
y pegue %TEMP%\clip.png
en el campo de nombre de archivo.
El código fuente de la secuencia de comandos AHK se proporciona a continuación: si no ha utilizado AutoHotKey antes, instálelo, guarde el código en un filename.ahk
archivo en el mismo directorio que la utilidad ClipboardToPNG.exe y luego ejecútelo.
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
archivo o su mapa de bits mientras está abierto en un editor / visor? Si es el archivo, Photoshop (debería) poder abrir el archivo correctamente, con transparencia y todo. Si se trata de los píxeles reales de la imagen, entonces depende del programa fuente y de si está poniendo los datos de transparencia en el portapapeles o no.