이미지에서 알파 채널 제거


103

iOS 용 앱 아이콘이 있지만 Apple은 이미지에 알파를 허용하지 않습니다. 이 알파 채널을 제거하는 방법? 나는 내 친구가 나를 위해 이미지를 한 것처럼 나는 소스 파일이 없습니다.


5
이미지 편집기에서 PNG를 열고 알파 채널을 비활성화 한 상태로 다시 저장 하시겠습니까?
— Alexander O'Mara 2014 년

1
수락 된 답변은 이미지 데이터를 잃고 불필요한 추가 단계가 있습니다. 대신 아래 솔루션을 참조하십시오. stackoverflow.com/a/38256612/5764320
— Mycah

또한 이미지 데이터 손실없이 이미지를 드래그 앤 드롭하고 알파 채널을 제거 할 수있는 작은 도구도 만들었습니다. removealphachannel.com
— Ali Nasserzadeh

답변:


48

다른 이미지 편집기가 없다고 가정하면 Mac의 미리보기에서 열고 내보내기 옵션을 사용하여 다른 형식으로 다시 저장할 수 있습니다. 알파 채널을 제거하려면 내보내는 것이 가장 좋습니다. JPG (최고 품질)로 변환 한 다음이를 열고 다시 PNG로 내 보냅니다.

하지만 실제 투명성이없는 한 투명성 채널이있는 아이콘을 제출해도 괜찮을 것 같습니다.


9
이로 인해 약간의 품질 손실이 발생하고 PNG 형식이 JPG 파일을 생성 할 때 얻는 일종의 아티팩트를 압축하는 데 적합하지 않기 때문에 더 큰 PNG 파일이 생성됩니다. 또한 Apple은 실제 투명성이없는 경우에도 알파 채널이있는 PNG 이미지를 거부합니다.
— philwilks

이전 버전의 macOS Sierra를 사용해 보았고 작동했습니다.
— Bhaumik Desai 2011

10
PNG로 내보내는 동안 실제로 "알파"확인란을 선택 취소 할 수 있습니다. 먼저 JPG로 내보낼 필요가 없습니다.
— Petr Peller

이미지 채널을 4에서 3으로 줄이기 위해 이미지 데이터에 대한 작업을 수행하는 방법은 무엇입니까?
— voldikss

5
투명도가 이미지에 표시되는지 여부에 관계없이 투명 채널이있는 모든 PNG는 허용되지 않습니다.
— gbarnett

240

JPG로 내 보낸 다음 다시 PNG로 내보내는 데 허용되는 답변은 권장되지 않습니다.

  • 프로세스의 추가 단계 (2 개 내보내기)
  • JPG는 손실이 있으므로 일부 이미지 데이터가 손실됩니다.

다음은 추가로 내보내거나 (손실이있는) JPG로 저장하지 않고도이 작업을 수행하는 매우 빠르고 쉬운 방법입니다.

미리보기 앱 사용 (Mac) :

  1. 이미지 열기
  2. Command-Shift-S to Duplicate (사본 생성)
  3. 저장할 Command-S
  4. "알파" 체크 상자 선택 해제
  5. 파일 이름 (공백 포함) 에서 "사본"삭제
    • 이렇게하면 원본을 덮어 씁니다. 원본을 유지하려면 이름에 "사본"만 남겨 둡니다.
  6. 저장
  7. 원본을 덮어 쓸 것인지 확인 하려면 '교체' 를 클릭하십시오.
    • 원본을 덮어 쓰는 경우에만 필요합니다. 알파 채널 제거

2
^ 이것은 더 나은 대답, IMHO입니다. JPG는 알파 채널을 지원하지 않으므로 LOSSLESS 형식을 사용하고 알파 채널을 처리 할 수 ​​있습니다 (피하는 대신).
— 코디 - PHP - jQuery를

4
iTunes Store 팀이 시계 앱 아이콘에이 오류 (알파 채널)를 표시하는 이유를 이해하지 못합니다. 이전 버전에서는 올바른 것으로 간주됩니다. 잃어버린 시간! Apple Inc 감사합니다!
— Markus

무손실 솔루션에 감사드립니다!
— Shchvova

10
macOS High Sierra에서 미리보기는 확인란이 선택되지 않은 경우에도 항상 알파 채널과 함께 PNG를 저장하는 것처럼 보입니다. 저장된 파일을 열면 정보 상자에 항상 "Has Alpha : 1"이 표시됩니다. 모금 도구도 나에게 알려줍니다 hasAlpha: yes. 또한 iTunes Store는 원하지 않는 알파 채널에 대해 불평합니다 ( "Operation Failed – App Store 아이콘… 투명하거나 알파 채널을 포함 할 수 없습니다").
— Stefan

2
@Psychomentally에서 언급했듯이 ImageMagick은 마침내 나를 위해 일했습니다 convert in.png -alpha off out.png. 레. 미리보기 : 내보내기 대화 상자에서 "알파"를 켜거나 끄면 예상 파일 크기가 변경되지만 저장하면 항상 알파 정보 (및 해당 크기)로 파일이 기록됩니다.
— Stefan

55

아이콘이있는 디렉토리에서 모든 알파 채널을 제거해야하는 경우 다음 명령을 사용하십시오.

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

Mac OS Mojave가 있고 "convert command not found"가있는 경우

brew install imagemagick

Homebrew를 설치하려면

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

1
이 대신에 24 비트의 8 비트의 출력 이미지를 제공
— 스테판 Yakovenko 보낸

당신은 변경하는 경우 -alpha remove -alpha off $i;에 -alpha remove -alpha off png24:$i; 출력됩니다 24 비트 PNG
— 로렌스 라이어 슨 데이비스 IV

37

미리보기 앱을 사용하는 경우 jpg와 png 사이에서 내 보낸 다음 다시 내보낼 필요가 없습니다. 내보내기를 선택하면 파일 형식 (PNG) 아래에 알파 확인란이 표시되어 설정을 해제하고 저장합니다.


4
이 방법을 사용했지만 MacOS High Sierra에서는 JPG를 출력으로 선택하지 않는 한 미리보기에서 알파를 선택 취소해도 아무 작업도 수행되지 않습니다. PNG를 열고 알파없이 PNG 내보내기를 시도하고 새 PNG를 열면 알파 채널이 있습니다.
— Dan Loughney 2017 년

High Sierra (10.13.4)에서 나를 위해 일함
— fl034

14

먼저 이미지를 jpg로 내보낼 필요가 없습니다. 알파 채널의 확인란을 선택 취소하고 미리보기 앱에서 알파 채널이없는 png에서 PNG로 직접 내보낼 수 있습니다.

여기에 이미지 설명 입력


13

imagemagick을 사용해 볼 수 있습니다 (다른 크기에 맞게 쉽게 크기 조정) :

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

cmd bash에서 png 파일을 어떻게 선택합니까
— Marlhex

Marlhexs-MacBook-Pro : Edgar marlhex $ ls LUNCH SCREEN.jpg nuevo icon-5.png LUNCH SCREEN.png nuevo icon-51024 copy.jpg nuevo icon-5.jpg nuevo icon-51024.png Marlhexs-MacBook-Pro : Edgar marlhex $ nuevo icon-51024.png -bash : nuevo : 명령을 찾을 수 없음
— Marlhex

9

내 앱을 iTunes 앱 스토어에 업로드하려고 할 때 다음 오류가 발생했습니다.

iTunes Store 작업 실패

오류 ITMS-90717 : "잘못된 App Store 아이콘입니다. 'MyApp.app'의 자산 카탈로그에있는 App Store 아이콘은 투명하거나 알파 채널을 포함 할 수 없습니다."

Finder에서 자산을 찾고 정보 (⌘ + i)를 조회하여 내 앱 스토어 아이콘에 알파 채널이 포함되어 있음을 확인했습니다. 추가 정보 아래에 다음이 표시되었습니다.

알파 채널 : 예

알파 확인란을 선택하지 않은 채로 내 보내서 알파 채널을 제거하는 미리보기를 사용하는 위의 솔루션을 찾았지만 알파 채널을 제거하는 데 필요한 18 개의 자산이 있었기 때문에 일괄 내보내기 방법을 찾았습니다.

일괄 내보내기 작업을 수행하는 방법은 Finder에서 모든 앱 아이콘 자산을 선택> 오른쪽 클릭> 열기 (또는 미리보기로 열기)

이제 모든 자산이 동일한 창에 나타납니다. 모두 선택 (⌘ + a) 한 다음 파일> 선택한 이미지 내보내기…> 옵션 확장> 알파 확인란 선택 취소> (대상 폴더) 선택

끝난! 이제 모든 이미지가 알파 채널이 제거 된 상태로 내보내집니다.


1
나는 똑같이 시도했지만 High Sierra에서 더 이상 작동하지 않습니다. 알파 채널은 미리보기에서 제거되지 않습니다.
— Satheeshwaran

6

png에서 알파 채널을 제거하려면 :

Mac : 미리보기 버전 9.0 (macOS Sierra)은 이미지를 내보내거나 저장하는 경우 알파 채널을 제거 할 수 있습니다.

미리보기 버전 10.0 (944.2) (macOS High Sierra)은 알파 채널을 제거하지 않습니다. 내보내기 및 / 또는 저장 모두 이미지에서 알파 채널을 제거하지 않습니다.


2
애플이 주요 사건이 최근 마른 세수 문제를 .... 높은 시에라 옵션과 많은 사람들이 여기에있는 이유 막아을 무시하고, 엑스 코드 갑자기 때문에 아이콘 투명성의 애플리케이션 업로드 할 수 없습니다
— MobileVet

4

Flutter 애플리케이션의 맥락에서 동일한 문제가 발생하여 이미지의 알파 채널을 제거 할 수있는이 작업을위한 간단한 웹 사이트를 만들었습니다.

알파 채널 제거

기본적으로 브라우저에서 직접 웹 어셈블리를 사용하여 ImageMagick을 실행하므로 이미지가 업로드되지 않으며 Gimp와 같은 다른 도구가 필요하지 않습니다.


2

알파 확인란이 더 이상 미리보기에 없습니다.


여전히 볼 수 있고 사용할 수 있습니다. 파일을 내 보내야합니다.
— Oscar

2
두 번째로 할 수 있습니다. 사라졌습니다.
— Wep0n

2

음, Mac을 사용하고 있으므로 다음에 Automator를 사용하고 싶을 것입니다. 이미지를 BMP (무손실)로 변환하고 다시 PNG로 변환합니다. 저장하고 짜잔 ...


0

Nikita Pushkar의 매우 멋진 솔루션을 다음에서 찾은 모든 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

당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.