Копіювання PNG з прозорістю із браузера показує натомість чорний фон


47

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

Чи є якесь рішення для цього? Це проблема браузера, проблема програми або проблема ОС із буфером обміну?

Я використовую Windows 7 і тестую останні версії Chrome і Internet Explorer.


1
Будь ласка, докладно. Що саме ви копіюєте? .pngФайл або його растровий , поки він буде відкритий в редакторі / глядача? Якщо це файл, то Photoshop (повинен) мати змогу правильно відкрити файл, прозорість і все. Якщо це фактичні пікселі зображення, то це залежить від вихідної програми та чи вводить вона дані про прозорість у буфер обміну чи ні.
Synetech

Сортування залежить від ОС. Здається, буфер обміну не може містити напівпрозорі зображення, але деякі браузери замість цього зберігають посилання на зображення - це, коли вставляється, прозорість не змінюється.
Томаш Зато

Якщо ви відкриєте .png файл з прозорістю в MS Paint (Windows 10) або Firefox 60.0.2, фон відображається як білий. Якщо ви відкриєте той самий файл у IrfanView або Chrome 67.0.3396.87, фон відображатиметься як чорний. Якщо ви відкриєте той самий файл у Paint.NET, фон відображається у вигляді сіро-білої шашки. Якщо ви відкриєте його за допомогою Paint 3D, фон відображатиметься як бежевий. Якщо ви копіюєте з MS Paint, фон стає непрозорим білим. Якщо ви копіюєте з Paint.NET, прозорий фон зберігається у буфері обміну Win10, тому те, що відбувається, залежить від того, до якої програми ви його вставите.
Дейв Бертон

Відповіді:


30

Copy-Paste не підтримує прозорість. Спробуйте зберегти файл, а потім скористайтеся Open Fileу Photoshop. AFAIK, Paint не має змоги зберігати png-файли з підтримкою прозорості.


4
Так, це я роблю. Я просто сподівався, що існує якийсь інший шлях.
Райан Елкінс

2
@ryan FWIW, це насправді здається помилкою на стороні Photoshop. Він працює в Paint.net, коли він копіюється з IE, FF або Chrome. Я думав, що, можливо, вирішення буде "Вставити на Paint.net, виділити все, скопіювати, вставити у Photoshop", але це не працює - ви отримуєте зображення білим кольором замість чорного, але все ще без прозорості.
Кіп

9
Просто записка; ви можете відкрити URL-адресу у Photoshop, заощадивши проміжний крок; Windows ( я впевнений, що інші ОС будуть робити те саме ) завантажить його у локальний тимчасовий файл та відкриє. Це ( я щойно спостерігав ) зберігає прозорість.
Dan Lugg

> Copy-Paste не підтримує прозорість. Це залежить від джерела даних буфера обміну.
Synetech

Якщо вставити на PowerPoint / Word, прозорість буде збережена.
Сяо Пен - ZenUML.com

11

Опублікувавши коментар @DanLugg як відповідь, оскільки це найзручніше для Windows , IMHO:

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

Для OS X немає поля діалогового вікна / листа відкритого файлу, куди можна було б вставити URI. Замість цього потрібно завантажити файл і відкрити його (наприклад, перетягнути з браузера на робочий стіл, потім перетягнути новий файл на док-станцію або у документ Photoshop), а потім видалити тимчасовий файл.


FWIW, здається, це проблема Photoshop , а не браузер чи ОС. І в OS X і Windows я можу скопіювати зображення PNG з прозорістю з Chrome (а також Safari в OS X) і вставити його в Illustrator або інші додатки, щоб він підтримував прозорість. Винен лише Photoshop.


Це геній, не мав уявлення, що Photoshop може відкритись прямо з URL-адреси! Гарна знахідка!
Doggie52

1
Здається, ця опція недоступна для OSX. Хтось знає?
Крістін Купер

@ChristineCooper Найкращий варіант, який я знаю для OS X, це завантажити зображення, потім відкрити та видалити оригінал. Це так само просто, як перетягування зображення в папку або на робочий стіл (що зберігається як файл), потім перетягування цього файлу на Photoshop в доці або у відкритий документ Photoshop. Я протестував різні варіанти, використовуючи Chrome і Safari разом із Photoshop CS6, і не можу знайти кращого способу чи будь-якого способу використання буфера обміну.
Фрогз

Так, я намагаюся уникати опції завантаження та відкриття і хочу значно зменшити кроки. Перетягування також не працює. Сподіваємось, користувачі OSX зможуть вставити URL-адреси у Photoshop у майбутньому. Дякую!
Крістін Купер

Це не проблема Photoshop. Проблема полягає в тому, що формат буфера обміну, який використовується в будь-яких копіях , насправді не вказаний як альфа-здатний. Photoshop просто правильно виконує характеристики.
Nyerguds

2

Спробуйте це: скопіюйте прозоре зображення, вставте в MS Word. ЦЕ скопіюйте його (або перетягніть / впустіть) із слова та вставте його до іншої цільової програми.

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


не роби це! Ви втрачаєте прозорий фон!
Андрій Красуцький

Не впевнений, чому ви мені кажете не робити цього, саме це я роблю, щоб зберегти прозорість при використанні Visio. Також я використовую Word для додавання прозорості (встановлення кольору фону та / або видалення функцій фону), коли це не зображення з прозорістю.
JamieRI

1

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

Програма + Джерело: https://github.com/skoshy/CopyTransparentImages/releases

Якщо ви зіткнулися з будь-якими проблемами з цим, сміливо повідомте мене тут або на Github!


Мені будуть цікаві деталі щодо цього. Що робить ваш код? Чого Photoshop очікує на прозорість, яку немає в даних буфера обміну?
Фрогз

0

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


1
Здається, гарна пропозиція, але це не працює між Chrome і Photoshop CC на Windows 7x64. [+]Курсор показує на цілі Photoshop, але зображення не відкривається в результаті.
Фрогз

0

Я просто витратив багато часу на це. Я деякий час використовував Photoshop для копіювання напівпрозорих текстур під час прототипування (із призначенням Axure RP).

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

Якщо я використовую буфер обміну (з прямокутним малюнком) для копіювання напівпрозорої текстури в браузер з API буфера обміну, він встановлює байт альфа в FF (повністю непрозорий).

Якщо я використовую API перетягування для копіювання файлу PNG 24 «Зберегти як Інтернет», він працює як очікується, і прозорі пікселі працюють (а байтовий альфа не змушений FF).

Примітка. Навіть думав, що Photoshop каже, що це 24 біт, він фактично експортує його як 8 біт (підтверджено).


0

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

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

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


0

Тож я набридла цим роздратуванням і вирішила подолати.

Є дві частини:

  • Крихітна утиліта, яку я написав, щоб зберегти зображення буфера обміну у файл .png
  • AutoHotKey сценарій

Сценарій 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, просто зробіть нову дію з комбінацією клавіш, відображеною на 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
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.