Então, eu me cansei desse aborrecimento e fiz uma solução alternativa.
Existem duas partes:
- Um pequeno utilitário que escrevi para salvar a imagem da área de transferência em um arquivo .png
- Um script AutoHotKey
O script AutoHotKey verifica se o Photoshop está ativo no momento e, se estiver, intercepta a combinação de teclas Ctrl
+ V
e, em seguida, executa o utilitário.
Se o utilitário salvou uma imagem %TEMP%\clip.png
, a combinação de teclas Shift
+ Ctrl
+ F12
é enviada para o Photoshop, que mapeei para uma ação do Photoshop para colocar o clip.png
arquivo no documento aberto no momento.
Se o utilitário não salvou a imagem, a combinação padrão de teclas Ctrl
+ V
é enviada ao Photoshop e uma pasta padrão é executada.
Todo o código-fonte está disponível aqui: https://github.com/SilverEzhik/ClipboardToPNG , e o utilitário pode ser baixado aqui: https://github.com/SilverEzhik/ClipboardToPNG/releases
Para criar a ação do Photoshop, basta fazer uma nova ação com a combinação de teclas mapeada para Shift + Ctrl + F12 (ou alterar a combinação no arquivo de script) e, durante a gravação, vá para File
> Place Embedded...
e cole %TEMP%\clip.png
no campo nome do arquivo.
O código fonte do script AHK é fornecido abaixo - se você não tiver usado o AutoHotKey antes, instale-o e salve o código em um filename.ahk
arquivo no mesmo diretório que o utilitário ClipboardToPNG.exe e, em seguida, execute-o.
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
arquivo ou seu bitmap enquanto é aberto em um editor / visualizador? Se for o arquivo, o Photoshop poderá abrir o arquivo corretamente, com transparência e tudo. Se forem os pixels reais da imagem, isso depende do programa de origem e se os dados de transparência estão sendo colocados na área de transferência ou não.