Изображения не могут содержать альфа-каналы или прозрачные пленки


331

Apple выпустила новую версию iTunes Connect, и я получил сообщение об ошибке, когда попытался установить снимки экрана в itunes connect для моего приложения.

"Images can't contain alpha channels or transparencies." 

введите описание изображения здесь


Это не упомянуто в Руководстве для разработчиков
razor28

15
Просто конвертировать изображения в формат JPG работал для меня!
Джайпракаш Дубей

1
Самый первый загрузчик изображений, который я написал сам, мог взять любой размер jpeg, png или gif, правильно повернуть его и вывести jpeg нужного уровня сжатия. Очевидно, я могу делать загрузчики изображений, а Apple - нет. И в отличие от Apple, я никогда не мечтал заставить своих пользователей «о, просто уберите альфа из PNG вручную! Для каждой картинки!».
Хенрик Эрландссон

К сожалению, xcode разрешает это, когда iTunes Connect этого не делает.
Джеймс Т Снелл

Ответы:


262

AFAIK png с прозрачностью не допускается. используйте jpg ИЛИ обновите ваш png (фотошоп или все, что вы используете для создания png) и удалите области прозрачности. если вы работаете с тенями, используйте jpg, это не вызовет головной боли.


Работал для меня тоже. Спасибо
Мед

6
JPEG с потерями, и это ужасная, ужасная идея. Проверьте другие ответы и правильно удалите прозрачность.
Рудольф Адамкович

3
Простое открытие в Preview и экспорт в JPEG решило проблему. Снимок экрана устройства XCode сохраняется в формате PNG, что является проблемой. Съемка экранов с помощью устройства (кнопка «Домой» + кнопка питания) сохраняется в формате JPEG.
Анна Биллстрем

33
Вы можете экспортировать в PNG без альфа в Preview. Просто откройте свое изображение, выберите экспорт, выберите PNG, снимите флажок Альфа и нажмите Сохранить. Предварительный просмотр также поддерживает пакетный экспорт, если вы открываете все свои изображения одновременно.
Рассел Лэдд

1
Хороший ответ, но, как я заметил, результат .jpg не очень хороший, поэтому я просто открываю изображение в Photoshop, устанавливаю фоновый слой и устанавливаю его белый цвет, чтобы убрать прозрачность изображения, и использую это изображение как PNG.
Нитин Гоэль

467

Я обнаружил, что вы также можете просто повторно экспортировать файлы png в Preview, но снимите флажок Alpha при сохранении.

введите описание изображения здесь


48
Смешно, что iTunes Connect не будет принимать скриншоты, сгенерированные Xcode, учитывая, что именно так они рекомендуют вам это делать.
Джозеф Торонто

По какой-то необъяснимой причине, когда я делаю это, он сокращает размеры вдвое и теперь «неправильный размер» для iTC! WTF Apple ???
Mharper

14
Понятно, что, имея в распоряжении только 178 млрд долларов, Apple не может позволить себе исправить эту глупую ошибку и требует, чтобы десятки тысяч разработчиков все утомительно выполняли эту операцию снова и снова. Тьфу.
Nate

если бы я мог дать этому человеку 100 голосов за решение моей проблемы
Noor

2
дважды щелкните по фотографии «file» -> «Export ...»
Arjay Waran

102

это так просто ...

Откройте изображение в приложении « Просмотр» , нажмите « Файл» -> «Экспорт» и снимите флажок «Альфа».


Это не будет работать в Mac OS High Sierra, попробуйте более низкую версию для экспорта без альфа. Надеюсь, это кому-нибудь поможет.
Satheeshwaran

Очень простое решение. Спасибо!
Лина Т

Работает в Каталине Заменяет любую прозрачность на белый.
Марси

85

Для этого я сделал новый простой инструмент. Вы можете удалить альфа-канал (прозрачность) нескольких файлов .png в течение нескольких секунд.

Альфа-канал для удаления

Вы можете скачать здесь http://alphachannelremover.blogspot.com


17
Спасибо. Я ненавижу, что Apple добавила еще один шаг в процесс захвата, сохранения и отправки снимков экрана в магазин iTunesConnect.
Эндрю Смит

2
Этот инструмент очень прост, но довольно полезен. В противном случае мне пришлось бы потратить время на предварительное приложение Apple, чтобы удалить прозрачность один за другим, очень много времени. Теперь можно сделать несколько файлов одним выстрелом.
Бполат

1
Очень удобно, спасибо! Для всех программистов, которые есть у Apple, вы могли бы подумать, что они могут просто лишить альфа-канал автоматически. Клянусь, ни один из загруженных мною значков не имел никакой прозрачности, но отправка не удалась только потому, что они были сохранены в формате, обеспечивающем прозрачность. вздох
devios1

2
Добро пожаловать. На самом деле я создал программу для себя из-за разочарования, которое я испытывал, когда отправлял свои приложения в Apple, а затем решил поделиться ею с сообществом. Здесь с открытым исходным кодом на github вы можете посмотреть код или использовать его так, как вам нравится.
бполать

1
Отлично! Вы спасли меня час или два сегодня. 475 изображений для загрузки из-за редизайна!
Нэнси

73

Используйте mogrifyинструмент из ImageMagickпакета, чтобы удалить альфа-канал.

brew install imagemagick
cd folder_with_images
mogrify -alpha off */*.png

Обновление от 3 мая

Вы можете определить, содержит ли изображение альфа-канал, выполнив:

sips -g all image.png

В случае , если вы оказываете скриншоты в IOS Simulator вы можете оставить альфа - канал путем передачи BOOL opaque = YESв UIGraphicsBeginImageContextWithOptions:

UIGraphicsBeginImageContextWithOptions(imageSize, YES, 0); 

3
Более короткий выход для проверки альфа можно получить с помощью командыsips -g hasAlpha *.png
Антон Матосов

mogrify -alpha off 👍
система

27

Вы должны удалить альфа-каналы при загрузке фотографии в iTunes Connect.

Вы можете сделать это с помощью Preview, приложения Photos (старая iPhoto), Pixelmator, Adobe Photoshop и GIMP.

предварительный просмотр

1- Откройте фотографию в режиме предварительного просмотра (если фотография находится в вашем фотоальбоме в приложении «Фотографии» (старая версия iPhoto), затем просто перетащите ее из альбома на рабочий стол. Затем нажмите и удерживайте нажатой клавишу «Control» (щелчок правой кнопкой мыши при нажатии мыши) дублированную фотографию и выберите Preview.app в меню «Открыть с помощью»).

2- Выберите Экспорт ... в меню Файл, и после выбора места назначения снимите флажок Альфа внизу и нажмите Экспорт .

Файл ==> Экспорт ...

Альфа

Pixelmator

1- Откройте изображение в Pixelmator, не создавая новый файл Pixelmator . Просто перетащите фотографию в окно Pixelmator.

2- В меню «Поделиться» выберите « Экспорт для Интернета».

ВЕЧЕРА

3- В верхней панели снимите флажок Прозрачность .

4- Нажмите Далее, а затем сохраните новый файл где-нибудь.

Наконец, загрузите новую фотографию в iTunes Connect.

GIMP

1- Откройте фотографию в GIMP.

2- Откройте меню Layer .

3- В разделе « Прозрачность» нажмите « Удалить альфа-канал» .

4- Сохраните фотографию.

Adobe Photoshop

1- Откройте фотографию в Adobe Photoshop.

2- В меню « Слой» выберите « Маска слоя», а затем « Из прозрачности» .

3. Удалите маску слоя, щелкнув правой кнопкой мыши по маске на панели «Слой» и выбрав « Удалить маску слоя» .


1
Это не будет работать в Mac OS High Sierra, попробуйте более низкую версию для экспорта без альфа. Надеюсь, это кому-нибудь поможет.
Satheeshwaran

11

Если вы используете Photoshop, выберите «Файл»> «Сохранить для Интернета» («Command» + «Option» + «Shift» + «S»). Убедитесь, что прозрачность не проверена, и это должно работать.


Странный. Это работает для одного изображения. Но когда я пытаюсь сохранить действия и выполнить пакетный экспорт - получающиеся изображения по-прежнему имеют альфа.
келин

6

Все еще проблема в 2019 году: =)

Это сработало для меня: выберите все изображения, которые вы хотите загрузить -> Щелкните правой кнопкой мыши -> Открыть в режиме предварительного просмотра -> Экспорт -> Снимите флажок альфа -> Использовать экспортированные изображения.


5

На Pixelmator вы можете использовать «Поделиться> Экспорт для Web ...» ( + + E)

введите описание изображения здесь

и отмените выбор прозрачности на панели параметров инструмента.

введите описание изображения здесь


5

Расширяя Роман Б., отвечаю. Это все еще проблема, я загружал приложение Cordova. мое решение с использованием mogrify:

brew install imagemagick
* navigate to `platforms/ios/<your_app_name>/Images.xcassets/AppIcon.appiconset`*
mogrify -alpha off *.png

Затем успешно заархивированы и проверены. 👍


4

У меня та же проблема, просто сожмите ваш файл PNG на https://tinypng.com/ онлайн, а затем попробуйте загрузить этот новый сжатый файл PNG.

это работа для меня.


Это не сработало для меня - у него все еще был альфа-канал
Эндрю


3

Вы можете удалить альфа-канал из PNG-файла из командной строки с помощью pngcrush, используя флаг «-c 2»:

$ file input.png
input.png: PNG image data, 1024 x 1024, 8-bit/color RGBA, non-interlaced
$ pngcrush -q -c 2 input.png output.png
libpng warning: iCCP: known incorrect sRGB profile
$ file output.png
output.png: PNG image data, 1024 x 1024, 8-bit/color RGB, non-interlaced

Обратите внимание на переход с RGBA на RGB: альфа-канал пропал!

pngcrush живет на http://pmt.sourceforge.net/pngcrush/


2

Столкнулся с той же проблемой, попробуйте использовать формат JPG! Для меня здесь работало использование файла jpg вместо PNG, поскольку файлы jpg не используют функции альфа-канала или прозрачности. Я сделал это через онлайн-конвертер изображений, или вы также можете открыть изображение в окне предварительного просмотра, а затем Файл-> Экспорт и снимите флажок альфа как вариант, чтобы сохранить изображение и использовать это изображение.


1

Чтобы обойти проблему, я конвертировал с помощью fireworks мои файлы png32 в png24 для быстрой и простой загрузки. JPEG работает также, но это с потерями.



1

Photoshop

  1. Нарезать
  2. Сохранить для веба
  3. Снимите флажок Прозрачность

0

Если у вас установлен imagemagick, вы можете поместить следующий псевдоним в ваш .bash_profile. Он преобразует каждый PNG в каталоге в JPG, который автоматически удаляет альфа. Вы можете использовать получившиеся файлы jpg в качестве снимков экрана.

alias pngToJpg='for i in *.png; do convert $i ${i/.png/}.jpg; done'

JPG означает ухудшение качества, я бы не стал этого делать, только если бы мне действительно нужно, чтобы он был на самом деле меньше.
Жолт Сатмари

0

Для меня здесь работало использование файла jpg вместо PNG, поскольку файлы jpg не используют функции альфа-канала или прозрачности. Я сделал это через онлайн-конвертер изображений, или вы также можете открыть изображение в окне предварительного просмотра, а затем Файл-> Экспорт и снимите флажок альфа как вариант, чтобы сохранить изображение и использовать это изображение.


Да, но вы просите проблемы с использованием JPEG. Они изначально созданы для «шумных» изображений, таких как фотографии, но приводят к появлению артефактов на изображениях с большим количеством блочных цветов и прямыми краями, как на скриншотах.
JamEngulfer

0

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


0

Вы можете экспортировать в PNG без альфа в Preview. Просто откройте свое изображение, выберите экспорт, выберите PNG, снимите флажок Альфа и нажмите Сохранить. Предварительный просмотр также поддерживает пакетный экспорт, если вы открываете все свои изображения одновременно.


0

Экспорт из эскиза

Чтобы избежать прозрачности, убедитесь, что ни один слой не выходит за пределы монтажной области.


-2

Конвертируйте ваше изображение PNG в формат JPEG.


ITunes Connect не принимает JPEG для некоторых вещей. Например, значок приложения IOS должен быть png.
eclux
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.