Почему, когда я копирую / вставляю PNG-файлы с прозрачным фоном в фотошоп, они отображаются с черным фоном, а если я сохраняю их, то открываю, они прозрачные?
Я считаю маловероятным, что альфа-канал будет пропущен при копировании.
Почему, когда я копирую / вставляю PNG-файлы с прозрачным фоном в фотошоп, они отображаются с черным фоном, а если я сохраняю их, то открываю, они прозрачные?
Я считаю маловероятным, что альфа-канал будет пропущен при копировании.
Почему, когда я копирую / вставляю PNG-файлы с прозрачным фоном в фотошоп, они отображаются с черным фоном, а если я сохраняю их, то открываю, они прозрачные? Я считаю маловероятным, что альфа-канал будет пропущен при копировании.
Копирование и вставка состоит из двух частей: источника и места назначения. Что происходит при копировании и вставке, зависит от обеих сторон.
Когда вы копируете PNG, вы можете сделать это несколькими способами.
Вы можете скопировать фактический файл .png
, и в этом случае имя файла и путь к файлу копируются в буфер обмена. В этом случае при вставке принимающая программа должна уметь понимать этот конкретный формат буфера обмена и открывать содержащееся в нем имя файла. В этом случае это не должно отличаться от использования команды File->Open
.
Если, с другой стороны, у вас есть изображение, открытое в редакторе / средстве просмотра, и скопируйте фактические пиксели изображения, то это зависит от редактора / средства просмотра:
Если он только копирует данные цвета, то принимающая программа будет отображать только то, что содержит данные цвета, которые в случае изображений с прозрачностью могут содержать черный или другой цвет в прозрачных областях.
Если редактор / средство просмотра копирует только визуализированные пиксели, то принимающая программа вставит окончательное изображение с прозрачными областями, показывающими любой цвет фона в редакторе / средстве просмотра, который был установлен при копировании.
Если редактор / зритель скопировал данные о цвете, а также данные о прозрачности, тогда принимающая программа вставит изображение, как ожидается, с правильной прозрачностью.
Вы можете увидеть это в действии при использовании редактора иконок. В зависимости от используемых вами программ, если вы скопируете значок с прозрачностью в другую программу, такую как MSPaint, это может привести к неожиданным результатам в прозрачных областях.
Проблема в том, что существует только несколько стандартных форматов буфера обмена, включая текст, файлы и растровые данные. Для любых пользовательских данных, которые должны быть скопированы, программа должна зарегистрировать их и скопировать свои данные в буфер обмена. В этом случае программа-получатель должна знать о пользовательском формате и декодировать его. Стандартный растровый формат предназначен для плоских изображений и не имеет понятия прозрачности (он был разработан давно). Таким образом, программы должны предоставлять прозрачные изображения в буфер обмена в произвольном формате, и хотя некоторые из них являются общими, единого стандартного формата не существует. Некоторые программы только копируют изображение в формат плоского растрового изображения, что, конечно, означает отсутствие информации о прозрачности.
С другой стороны, программа может разместить несколько элементов в буфере обмена (в другом формате), поэтому, если редактор / зритель очень умен, он поместит копию данных (в данном случае прозрачное изображение) в несколько форматов, и затем программа-получатель должна использовать лучшую версию с наибольшим количеством информации.
Например, когда вы копируете файлы или папки, они копируются не менее чем в четырех форматах в XP и больше в 7 (есть и другие скопированные данные, но я имею в виду реальные имена файлов / пути). Некоторые из них более полезны, потому что они включают потерю данных о скопированных файлах, в то время как другие гораздо проще и включают только имя в виде простого текста первого файла.
То же самое касается копирования прозрачных изображений. Программа может поместить простое, плоское, отрендеренное изображение в растровый формат буфера обмена, может включать информацию о прозрачности в произвольном формате прозрачности и необработанную копию изображения со всеми его данными, включая прозрачность, слои и т.д., В другой пользовательский формат.
Конечно, как я уже сказал, именно получатель сможет понять и использовать лучшую версию, в противном случае может получиться простая, старомодная, обратно совместимая, стандартная копия.
Должен быть процесс рендеринга, чтобы показать что-то через прозрачные части png. При копировании изображения в буфер обмена отправляется только конечный результат этого процесса в виде (0,0,0) RGB или черного цвета.