Remove alpha channel in an image

IosImageAlpha

Ios Problem Overview


I have an app icon for iOS but Apple doesn't allow alpha to be in the image. How to remove this alpha channel? I only have the png image with me I don't have the source file as my friend did the image for me.

Ios Solutions


Solution 1 - Ios

The accepted answer to export to JPG, then back to PNG is not recommended.

  • It's an extra step in the process (2 exports)
  • JPG is lossy, so you will lose some image data

Here's a super fast and easy way to do this without the extra export or saving to (lossy) JPG:

Using Preview app (Mac):

  1. Open the image
  2. Command-Shift-S to Duplicate (creates a copy)
  3. Command-S to Save
  4. Deselect the "Alpha" checkbox
  5. Delete " copy" from filename (including the space)
    • This will overwrite your original, if you want to keep the original, just leave "copy" in the name
  6. Save
  7. Click 'Replace' to confirm you want to overwrite the original
    • Only necessary if you are overwriting your original remove alpha channel

Solution 2 - Ios

if you need remove all alpha channel from directory with icons use this command:

for i in `ls *.png`; do convert $i -background black -alpha remove -alpha off $i; done

if you have Mac OS Mojave and had "convert command not found"

brew install imagemagick

To install Homebrew

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" < /dev/null 2> /dev/null

Solution 3 - Ios

Assuming you don't have another image editor, then you can open it in Preview on your Mac, and use the Export option to resave it in a different format- to ensure you get rid of the alpha channel, it might be best to export to JPG (best quality), then open that and export it as a PNG again.

Having said that, I suspect you're probably OK submitting an icon with a transparency channel as long as there's no actual transparency.

Solution 4 - Ios

If you are using the Preview app, there's no need to export then re-export between jpg and png, just choose export and below the filetype (PNG) you will see an alpha checkbox, unset it and save.

Solution 5 - Ios

You can try imagemagick (also easily resize for different sizes):

convert in.png -background black -alpha remove -alpha off -resize 1024x1024 out.png

Solution 6 - Ios

There's no need to export the image to jpg first. You can uncheck the checkbox for the alpha channel and export directly from a png to a png without alpha channel in the preview app.

enter image description here

Solution 7 - Ios

Just got the the following error when trying to upload my app to the iTunes app store:

> iTunes Store Operations Failed > > ERROR ITMS-90717: "Invalid App Store Icon. The App Store icon in the asset catalog in 'MyApp.app' can't be transparent nor contain an alpha channel."

I confirmed that my app store icons did include the alpha channel by locating the asset in Finder and looking up its info (⌘+i). Underneath More info, it showed:

> Alpha channel: Yes

Found the solution above to use Preview to remove the alpha channel by exporting it with the Alpha checkbox unchecked, but figured a way to batch export them since I had 18 assets I needed to strip the alpha channel from.

The way I got batch exporting to work was to select all my app icon assets in finder > right click > open (or open with preview)

All of the assets will now appear in the same window. Select all (⌘+a), and then select File > Export Selected Images… > Expand Options > uncheck the Alpha checkbox > Choose (your destination folder)

Done! All your images are now exported with the alpha channel stripped off.

Solution 8 - Ios

To remove alpha channel from png:

on Mac: Preview version 9.0 (macOS Sierra) can remove the alpha channel if you export or save the image.

Preview version 10.0 (944.2) (macOS High Sierra) does not remove the alpha channel. Both Export and/or Save does not remove the alpha channel from the image.

Solution 9 - Ios

Well, since you're on a Mac, next time you probably just want to use Automator. Convert the image to BMP (lossless) and back to PNG. Let it save and voila...

Solution 10 - Ios

I put Nikita Pushkar's very nice solution into a shell script that converts all iOS icons found in res/icon/ios:

It uses brew to install imagemagick if not available, so I guess it will run only on 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

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
Questionzbz.lvlvView Question on Stackoverflow
Solution 1 - IosMycahView Answer on Stackoverflow
Solution 2 - IosNikita PushkarView Answer on Stackoverflow
Solution 3 - IosdanielquokkaView Answer on Stackoverflow
Solution 4 - IosOscar FrancoView Answer on Stackoverflow
Solution 5 - IosPsychomentalityView Answer on Stackoverflow
Solution 6 - IosStefanView Answer on Stackoverflow
Solution 7 - IosToland HonView Answer on Stackoverflow
Solution 8 - IosHynekView Answer on Stackoverflow
Solution 9 - IosAnticroView Answer on Stackoverflow
Solution 10 - IosPeter T.View Answer on Stackoverflow