41

Когда я копирую изображение PNG с прозрачностью в буфер обмена, а затем вставляю его в Photoshop, Paint и т.д., Прозрачность становится черной.

Есть ли обходной путь для этого? Это проблема браузера, проблема приложения или проблема ОС с буфером обмена?

Я использую Windows 7 и протестирован с последними версиями Chrome и Internet Explorer.

8 ответов8

28

Copy-Paste не поддерживает прозрачность. Попробуйте сохранить файл, а затем используйте « Open File в Photoshop. AFAIK, у Paint нет возможности сохранять png-файлы с включенной прозрачностью.

10

Публикация комментария @DanLugg в качестве ответа, так как это наиболее удобно для Windows, ИМХО:

  1. Щелкните правой кнопкой мыши изображение и Copy Image URL из браузера.
  2. В Photoshop выберите « File->Open (ctrl-o) и вставьте URL-адрес в часть имени файла диалога.
    • Photoshop/Windows загрузит URL во временный файл и откроет его.

Для OS X нет никакого поля в Открытом диалоге Файла / Листе, где можно было бы вставить URI. Вместо этого вы должны загрузить файл и открыть его (например, перетащить из браузера на рабочий стол, затем перетащить новый файл в Dock или в документ Photoshop), а затем удалить временный файл.


Похоже, это проблема Photoshop , а не проблема браузера или ОС. Как в OS X, так и в Windows я могу скопировать изображение PNG с прозрачностью из Chrome (а также Safari в OS X) и вставить его в Illustrator или другие приложения, чтобы оно сохраняло прозрачность. Виноват только фотошоп.

3

Попробуйте это: скопируйте прозрачное изображение, вставьте в MS Word. Затем скопируйте его (или перетащите) из слова и вставьте в другую целевую программу.

Я обнаружил, что вставка в Visio из Chrome становится черной, но работает правильно в Word, а затем скопирована из Word, она вставляется правильно и прозрачно в Visio.

1

Вы можете просто перетащить изображение из браузера в Photoshop или любую другую программу, которая будет правильно обрабатывать файл PNG.

0

Я сделал обходной путь, который решает проблему. Запуск моего скрипта после копирования PNG позволяет вставить изображение из Chrome в Photoshop, Paint и т.д. С прозрачностью в такте.

Программа + Источник: https://github.com/skoshy/CopyTransparentImages/releases

Если у вас возникнут какие-либо проблемы, сообщите мне об этом здесь или на Github!

0

Для всех, кто интересуется, если вы получаете черный цвет фона скопированного файла PNG даже при открытии его вручную, попробуйте проверить, нет ли альфа-канала.

Похоже, в зависимости от того, какое программное обеспечение использовалось для создания PNG, прозрачность иногда сохраняется такой же, как и внутри слоев, но в другой раз она сохраняется в альфа-канале.

Хитрость, когда он находится в альфа-канале, состоит в том, чтобы просто нажать CTRL+. Нажмите на небольшой предварительный просмотр альфа-канала, чтобы выбрать его, а затем создайте маску на слое с черным фоном из выделения. (Тогда вы можете удалить альфа-канал)

0

Я просто провел много времени, изучая это. Я использовал Photoshop для копирования полупрозрачных текстур в течение некоторого времени во время создания прототипа (с назначением Axure RP).

Теперь я попытался использовать новый API буфера обмена в HTML 5. Я проанализировал файлы PNG, сгенерированные этим процессом.

Если я использую буфер обмена (с прямоугольным выделением) для копирования полупрозрачной текстуры в браузер с помощью API буфера обмена, он устанавливает альфа-байт в FF (полностью непрозрачный).

Если я использую API-интерфейс перетаскивания для копирования файла PNG 24 "Сохранить как веб" в браузер, он работает так, как ожидается, и прозрачные пиксели работают (и альфа-байт не является обязательным для FF).

Примечание. Даже несмотря на то, что Photoshop говорит, что он 24-битный, он на самом деле экспортирует его как 8-битный (подтверждено).

0

Таким образом, я сыт по горло этим раздражением и сделал обходной путь.

Есть две части к этому:

  • Крошечная утилита, которую я написал, чтобы сохранить изображение в буфер обмена .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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .