从浏览器中复制带有透明度的PNG文件,会显示黑色背景。
当我将带有透明度的PNG图像复制到剪贴板,然后粘贴到Photoshop、Paint等软件中。- 透明度变成了黑色。
有什么解决方法吗?这是浏览器问题、应用程序问题还是剪贴板的操作系统问题?
我使用的是Windows 7,并使用最新版本的Chrome和Internet Explorer进行了测试。
当我将带有透明度的PNG图像复制到剪贴板,然后粘贴到Photoshop、Paint等软件中。- 透明度变成了黑色。
有什么解决方法吗?这是浏览器问题、应用程序问题还是剪贴板的操作系统问题?
我使用的是Windows 7,并使用最新版本的Chrome和Internet Explorer进行了测试。
复制-粘贴不能保持透明度。尝试保存文件,然后在Photoshop中使用Open File
。AFAIK,Paint没有保存启用透明度的png文件的功能。
贴出 @DanLugg 的评论作为答案,因为这对Windows来说是最方便的,我觉得。
1.在图片上点击右键,然后从浏览器中点击Copy Image URL
。
2. 在Photoshop中选择File->Open
(ctrl-o),然后将URL粘贴到对话框的文件名部分。
- Photoshop/Windows会将URL下载到一个临时文件并打开它。
对于OS X,在打开文件对话框/表中没有可以粘贴URI的区域。相反,您必须下载文件并打开它(例如,从浏览器拖动到桌面,然后将新文件拖到Dock或Photoshop文档中),然后删除临时文件。
FWIW,这似乎是一个Photoshop问题,而不是浏览器或操作系统的问题。在OS X和Windows上,我都可以从Chrome浏览器(OS X上的Safari也可以)复制一个具有透明度的PNG图像,然后将其粘贴到Illustrator或其他应用程序中,并使其保持透明度。仅仅是Photoshop的问题。
我做了一个解决这个问题的变通方法。在复制一个PNG后运行我的脚本,可以将Chrome浏览器中的图片粘贴到Photoshop、Paint等软件中,并保持透明度。
程序+源。https://github.com/skoshy/CopyTransparentImages/releases
如果你遇到任何问题,请在这里或Github上告诉我!
于是我受够了这个烦恼,做了一个变通方法。
有两个部分。
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
我刚刚花了很多时间研究这个问题。在制作原型时,我使用Photoshop复制半透明的纹理有一段时间了(目标是Axure RP)。
现在,我已经尝试使用html 5中新的剪贴板API。我剖析了这个过程产生的PNG文件。
如果我使用剪贴板(有一个矩形标记)使用剪贴板API将一个半透明的纹理复制到浏览器,它将alpha字节设置为FF(完全不透明)。
如果我使用拖放 API 将 “另存为 Web "的 PNG 24 文件复制到浏览器,它的工作原理与预期一样,透明像素也能正常工作(而且 Alpha 字节不会被强制设置为 FF)。
注意:即使Photoshop说它是24位的,它实际上还是以8位导出的(已确认)。