Tengo un ícono de aplicación para iOS, pero Apple no permite que el alfa esté en la imagen. ¿Cómo eliminar este canal alfa? Solo tengo la imagen png conmigo. No tengo el archivo fuente, ya que mi amigo hizo la imagen por mí.
Tengo un ícono de aplicación para iOS, pero Apple no permite que el alfa esté en la imagen. ¿Cómo eliminar este canal alfa? Solo tengo la imagen png conmigo. No tengo el archivo fuente, ya que mi amigo hizo la imagen por mí.
Respuestas:
Suponiendo que no tiene otro editor de imágenes, puede abrirlo en Vista previa en su Mac y usar la opción Exportar para volver a guardarlo en un formato diferente; para asegurarse de deshacerse del canal alfa, podría ser mejor exportar a JPG (mejor calidad), luego ábralo y expórtelo como PNG nuevamente.
Habiendo dicho eso, sospecho que probablemente estés bien enviando un ícono con un canal de transparencia siempre que no haya transparencia real.
No se recomienda la respuesta aceptada para exportar a JPG y luego volver a PNG.
Aquí hay una manera súper rápida y fácil de hacer esto sin la exportación adicional o sin guardar en JPG (con pérdida):
Usando la aplicación Vista previa (Mac):
hasAlpha: yes
. Además, iTunes Store se queja del canal alfa no deseado ("Falló la operación: el icono de la App Store ... no puede ser transparente ni contener un canal alfa").
convert in.png -alpha off out.png
. Re. Vista previa: activar / desactivar "alfa" en el cuadro de diálogo de exportación cambia el tamaño de archivo previsto, pero al guardarlo, se escribe siempre el archivo con información alfa (y el tamaño correspondiente).
Si necesita eliminar todos los canales alfa del directorio con iconos, utilice este comando:
for i in `ls *.png`; do convert $i -background black -alpha remove -alpha off $i; done
si tiene Mac OS Mojave y "no se encontró el comando de conversión"
brew install imagemagick
Para instalar Homebrew
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" < /dev/null 2> /dev/null
-alpha remove -alpha off $i;
al -alpha remove -alpha off png24:$i;
que dará salida a una de 24 bits png
Si está utilizando la aplicación Vista previa, no es necesario exportar y luego volver a exportar entre jpg y png, simplemente elija exportar y debajo del tipo de archivo (PNG) verá una casilla de verificación alfa, desmarque y guarde.
Puede probar imagemagick (también cambiar el tamaño fácilmente para diferentes tamaños):
convert in.png -background black -alpha remove -alpha off -resize 1024x1024 out.png
Recibí el siguiente error al intentar cargar mi aplicación en la tienda de aplicaciones de iTunes:
Error en las operaciones de iTunes Store
ERROR ITMS-90717: "Icono de App Store no válido. El icono de App Store en el catálogo de activos en 'MyApp.app' no puede ser transparente ni contener un canal alfa".
Confirmé que los íconos de mi tienda de aplicaciones incluían el canal alfa al ubicar el activo en Finder y buscar su información (⌘ + i). Debajo de Más información, mostró:
Canal alfa: si
Encontré la solución anterior para usar Vista previa para eliminar el canal alfa exportándolo con la casilla de verificación Alfa sin marcar, pero encontré una forma de exportarlos por lotes ya que tenía 18 activos de los que necesitaba quitar el canal alfa.
La forma en que logré que la exportación por lotes funcione fue seleccionar todos los activos del ícono de mi aplicación en el buscador> clic derecho> abrir (o abrir con vista previa)
Todos los activos aparecerán ahora en la misma ventana. Seleccione todo (⌘ + a), y luego seleccione Archivo> Exportar imágenes seleccionadas…> Expandir opciones> desmarque la casilla Alfa> Elegir (su carpeta de destino)
¡Hecho! Todas sus imágenes ahora se exportan con el canal alfa eliminado.
Para eliminar el canal alfa de png:
en Mac: la versión preliminar 9.0 (macOS Sierra) puede eliminar el canal alfa si exporta o guarda la imagen.
La versión preliminar 10.0 (944.2) (macOS High Sierra) no elimina el canal alfa. Tanto Exportar como Guardar no eliminan el canal alfa de la imagen.
Habiéndome encontrado con el mismo problema en el contexto de las aplicaciones de Flutter, he dedicado un sitio web simple para esta tarea donde puedes eliminar canales alfa de imágenes:
Básicamente, ejecuto ImageMagick usando Web Assembly directamente en el navegador, por lo que ninguna de sus imágenes se carga y no necesita ninguna otra herramienta como Gimp.
Puse la muy buena solución de Nikita Pushkar en un script de shell que convierte todos los íconos de iOS que se encuentran en res/icon/ios
:
Utiliza brew para instalar imagemagick si no está disponible, así que supongo que solo se ejecutará en 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
Tuve este mismo problema, pero las otras respuestas no me funcionaron ahora (puede ser un error de Apple). Descubrí que puede usar este sitio web para eliminar el canal alfa de una imagen.