当我将具有透明度的PNG图像复制到剪贴板,然后将其粘贴到Photoshop,Paint等中时-透明度变为黑色。
有什么解决方法吗?这是剪贴板的浏览器问题,应用程序问题还是操作系统问题?
我使用的是Windows 7,并经过了最新版本的Chrome和Internet Explorer的测试。
当我将具有透明度的PNG图像复制到剪贴板,然后将其粘贴到Photoshop,Paint等中时-透明度变为黑色。
有什么解决方法吗?这是剪贴板的浏览器问题,应用程序问题还是操作系统问题?
我使用的是Windows 7,并经过了最新版本的Chrome和Internet Explorer的测试。
Answers:
复制粘贴不保持透明度。尝试保存文件,然后Open File
在Photoshop中使用。AFAIK,Paint无法保存启用了透明度的png文件。
@DanLugg发表评论作为答案,因为它对于Windows最为方便,恕我直言:
Copy Image URL
从浏览器中。File->Open
(ctrl-o)并将URL粘贴到对话框的文件名部分。
对于OS X,“打开文件”对话框/表单中没有可粘贴URI的字段。相反,您必须下载文件并将其打开(例如,从浏览器拖动到桌面,然后将新文件拖动到Dock或Photoshop文档中),然后删除该临时文件。
FWIW,这似乎是Photoshop问题,而不是浏览器或OS问题。在OS X和Windows上,我都可以从Chrome(以及OS X上的Safari)复制具有透明性的PNG图像,然后将其粘贴到Illustrator或其他应用程序中,并保持透明性。只能归咎于Photoshop。
我提出了解决此问题的解决方法。复制PNG后运行脚本,可以将Chrome中的图像粘贴到Photoshop,Paint等中,并保持透明。
程序+来源:https : //github.com/skoshy/CopyTransparentImages/releases
如果您遇到任何问题,请随时在此处或在Github上告诉我!
您可以将图像从浏览器拖动到Photoshop或任何可以正确处理PNG文件的程序。
[+]
光标显示出来的Photoshop的目标,但没有图像被打开的结果。
我只是花了很多时间研究这个问题。我在原型制作时(使用Axure RP的目标)使用Photoshop复制半透明纹理有一段时间。
现在,我尝试使用html 5中的新剪贴板API。我剖析了此过程生成的PNG文件。
如果我使用剪贴板(带有矩形选框)将半透明纹理复制到具有剪贴板API的浏览器中,则会将alpha字节设置为FF(完全不透明)。
如果我使用拖放API将“另存为Web” PNG 24文件复制到浏览器,则该文件将按预期工作,并且透明像素也可以正常工作(并且alpha字节不会强制设置为FF)。
注意:即使以为Photoshop表示它是24位,它实际上仍将其导出为8位(已确认)。
因此,我厌倦了这种烦恼并做出了解决方法。
它有两部分:
AutoHotKey脚本检查Photoshop当前是否处于活动状态,如果是,则它拦截Ctrl
+ V
键组合,然后运行该实用程序。
如果该实用程序将图像保存到%TEMP%\clip.png
,则Shift
+ Ctrl
+ F12
组合键将发送到Photoshop,我已将其映射到Photoshop Action,以将该clip.png
文件放入当前打开的文档中。
如果该实用程序未保存图像,则将标准Ctrl
+ V
键组合发送到Photoshop并执行标准粘贴。
所有源代码都可以在这里找到:https : //github.com/SilverEzhik/ClipboardToPNG,该实用程序可以在这里下载:https : //github.com/SilverEzhik/ClipboardToPNG/releases
要创建Photoshop Action,只需执行一个新操作,并将其组合键映射到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(应该)能够正确,透明地打开文件。如果是图片的实际像素,则取决于源程序以及是否将透明度数据放入剪贴板。