У мене є піктограма програми для iOS, але Apple не дозволяє альфа-файлу бути на зображенні. Як видалити цей альфа-канал? У мене є лише зображення у форматі png, у мене немає вихідного файлу, оскільки мій друг зробив зображення для мене.
У мене є піктограма програми для iOS, але Apple не дозволяє альфа-файлу бути на зображенні. Як видалити цей альфа-канал? У мене є лише зображення у форматі png, у мене немає вихідного файлу, оскільки мій друг зробив зображення для мене.
Відповіді:
Якщо припустити, що у вас немає іншого редактора зображень, ви можете відкрити його в Попередньому перегляді на своєму Mac і скористатися опцією Експорт, щоб зберегти його в іншому форматі - щоб ви позбулися альфа-каналу, можливо, найкраще експортувати у JPG (найкраща якість), а потім відкрийте його та знову експортуйте як PNG.
Сказавши це, я підозрюю, що ви, мабуть, у порядку, подавши піктограму з каналом прозорості, якщо фактичної прозорості немає.
Прийнята відповідь на експорт у JPG, а потім назад у PNG не рекомендується.
Ось надзвичайно швидкий і простий спосіб зробити це без зайвого експорту чи збереження у (з втратами) JPG:
Використання програми попереднього перегляду (Mac):
hasAlpha: yes
. Крім того, iTunes Store скаржиться на небажаний альфа-канал ("Помилка роботи - піктограма App Store ... не може бути прозорою та не містити альфа-канал").
convert in.png -alpha off out.png
. Re. Попередній перегляд: увімкнення / вимкнення "альфа" у діалоговому вікні експорту змінює передбачуваний розмір файлу, але при збереженні файл завжди записується з альфа-інформацією (та відповідним розміром).
якщо вам потрібно видалити весь альфа-канал з каталогу за допомогою піктограм, використовуйте цю команду:
for i in `ls *.png`; do convert $i -background black -alpha remove -alpha off $i; done
якщо у вас Mac OS Mojave і у вас "команда перетворення не знайдена"
brew install imagemagick
Щоб встановити Homebrew
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" < /dev/null 2> /dev/null
-alpha remove -alpha off $i;
на -alpha remove -alpha off png24:$i;
нього, виведеться 24 біт png
Якщо ви використовуєте програму попереднього перегляду, немає необхідності експортувати, тоді реекспортуйте між jpg та png, просто виберіть експорт, і під типом файлу (PNG) ви побачите альфа-прапорець, скасуєте його та збережете.
Ви можете спробувати imagemagick (також легко змінити розмір для різних розмірів):
convert in.png -background black -alpha remove -alpha off -resize 1024x1024 out.png
Щойно з’явилася така помилка при спробі завантажити програму до магазину програм iTunes:
Помилка роботи магазину iTunes
ПОМИЛКА ITMS-90717: "Недійсна піктограма App Store. Піктограма App Store у каталозі активів у" MyApp.app "не може бути прозорою та містити альфа-канал."
Я підтвердив, що мої піктограми магазину програм включали альфа-канал, знаходячи об’єкт у Finder та шукаючи його інформацію (⌘ + i). Внизу Докладніше, це показало:
Альфа-канал: Так
Знайшов наведене вище рішення, щоб використовувати Preview для видалення альфа-каналу, експортуючи його, якщо прапорець Альфа не встановлено, але знайшов спосіб пакетного експорту, оскільки у мене було 18 ресурсів, з яких мені потрібно було позбавити альфа-канал.
Я отримав пакетний експорт на роботу, вибравши всі значки моїх значків програми у інструменті пошуку> правою кнопкою миші> відкрити (або відкрити з попереднім переглядом)
Тепер усі активи з’являться в одному вікні. Виділіть все (⌘ + a), а потім виберіть Файл> Експортувати вибрані зображення ...> Розгорнути параметри> зніміть прапорець Альфа> Вибрати (папка призначення)
Готово! Усі ваші зображення зараз експортуються з відключеним альфа-каналом.
Щоб видалити альфа-канал з png:
на Mac: Попередній перегляд версії 9.0 (macOS Sierra) може видалити альфа-канал, якщо ви експортуєте або зберігаєте зображення.
Версія попереднього перегляду 10.0 (944.2) (macOS High Sierra) не видаляє альфа-канал. Експорт та / або Збереження не видаляє альфа-канал із зображення.
Натрапивши на ту саму проблему в контексті програм Flutter, для цього завдання я виділив простий веб-сайт, де ви можете видалити альфа-канали зображень:
В основному я запускаю ImageMagick, використовуючи Web Assembly безпосередньо в браузері, тому жодне з ваших зображень не завантажується, і вам не потрібні інші інструменти, такі як Gimp.
Я помістив дуже приємне рішення Микити Пушкара у сценарій оболонки, який перетворює всі значки iOS, знайдені в res/icon/ios
:
Він використовує brew для встановлення imagemagick, якщо він недоступний, тому, я думаю, він буде працювати лише на Mac.
#! /usr/bin/env bash
#
# remove alpha channel from PNG images when App Store upload fails
#
# taken from https://stackoverflow.com/a/52962485 - @Nikita Pushkar
#
# make sure to have brew installed, see https://brew.sh:
# /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
#
# make sure to have imagemagick installed, see https://imagemagick.org:
# brew install imagemagick
#
if command -v convert; then
echo "imagemagick seems to be installed"
else
echo "imagemagick not installed, trying to install ..."
if command -v brew; then
echo "brew is installed, using it"
else
echo "brew not installed, trying to install ..."
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
fi
brew install imagemagick
fi
for i in `ls res/icon/ios/*.png`;
do
echo "convert $i"
convert $i -background white -alpha remove -alpha off $i;
done
У мене була така сама проблема, але інші відповіді мені зараз не працювали (можливо, це помилка Apple). Я з’ясував, що ви можете використовувати цей веб-сайт, щоб видалити альфа-канал із зображення.