Obrazy nie mogą zawierać kanałów alfa ani folii


331

Apple wydało nową wersję iTunes Connect i dostałem komunikat o błędzie, gdy próbowałem ustawić zrzuty ekranu na iTunes Connect dla mojej aplikacji.

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

wprowadź opis zdjęcia tutaj


Tego nie wspomniano w iTunes Connect Developer Guide: developer.apple.com/library/ios/documentation/…
razor28,

15
Po prostu przekonwertuj obraz do formatu JPG, który zadziałał dla mnie !!
Jayprakash Dubey

1
Pierwszy program do przesyłania zdjęć, który sam napisałem, mógł wziąć format JPEG, PNG lub GIF o dowolnym rozmiarze, obrócić go poprawnie i wygenerować JPEG o pożądanym poziomie kompresji. Najwyraźniej mogę zrobić przesyłanie obrazów, a Apple nie. I w przeciwieństwie do Apple nigdy nie marzyłem o zmuszaniu moich użytkowników do „och, po prostu ręcznie usuń alfa z PNG! Dla każdego zdjęcia!”.
Henrik Erlandsson

Słabo, że xcode pozwala na to, gdy iTunes Connect tego nie robi.
James T Snell,

Odpowiedzi:


262

AFAIK png z przezroczystością jest niedozwolony. użyj jpg LUB zaktualizuj png (Photoshop lub cokolwiek, czego używasz do utworzenia png) i usuń obszary przezroczystości. jeśli pracujesz z cieniami, użyj jpg, który nie spowoduje bólu głowy.


Pracowałem też dla mnie. Thx
Honey

6
JPEG jest stratny i to okropny, okropny pomysł. Sprawdź inne odpowiedzi i odpowiednio usuń przezroczystość.
Rudolf Adamkovič

3
Po prostu otwarcie podglądu i eksportowanie do formatu JPEG rozwiązało problem. Zrzut ekranu urządzenia XCode zapisuje się w formacie PNG, który jest problemem. Robienie ekranów za pomocą urządzenia (przycisk Home + przycisk zasilania) zapisuje w formacie JPEG.
Anna Billstrom,

33
Możesz eksportować do formatu PNG bez alfa w podglądzie. Po prostu otwórz obraz, wybierz eksport, wybierz PNG, odznacz Alpha i kliknij Zapisz. Podgląd obsługuje również eksport partii, jeśli otworzysz wszystkie swoje zdjęcia jednocześnie.
Russell Ladd

1
Dobra odpowiedź, ale jak zauważam, wynik w formacie .jpg nie jest dobry, więc po prostu otwieram obraz w Photoshopie, ustawiam warstwę tła i ustawiam biały kolor, aby usunąć przezroczystość obrazu i użyć tego obrazu jako PNG.
Nitin Gohel

467

Odkryłem, że możesz również ponownie wyeksportować pliki PNG w podglądzie, ale odznacz pole wyboru Alpha podczas zapisywania.

wprowadź opis zdjęcia tutaj


48
To niedorzeczne, że iTunes Connect nie akceptuje zrzutów ekranu generowanych przez Xcode, biorąc pod uwagę, że tak właśnie zalecają.
Joseph Toronto,

Z jakiegoś niewytłumaczalnego powodu, kiedy to robię, tnie wymiary na pół i jest teraz „niewłaściwy rozmiar” dla iTC! WTF Apple ???
mharper,

13
Zrozumiałe jest, że mając tylko 178 miliardów dolarów w gotówce, Apple nie może sobie pozwolić na naprawienie tego głupiego błędu i wymaga dziesiątek tysięcy programistów, aby wszyscy nużąco samodzielnie wykonywali tę operację. Ugh.
Nate

chciałbym dać tej osobie 100 głosów za rozwiązanie mojego problemu
Noor

2
kliknij dwukrotnie „plik” zdjęcia -> „Eksportuj ...”
Arjay Waran

102

to takie proste ...

Otwórz obraz w aplikacji Preview, kliknij Plik -> Eksportuj i odznacz alfa


To nie będzie działać w systemie Mac OS High Sierra. Wypróbuj niższą wersję, aby wyeksportować bez wersji alfa. Mam nadzieję, że to komuś pomoże.
Satheeshwaran

Bardzo łatwe rozwiązanie. Dzięki!
Lina T

Pracuje w Catalinie. Zastępuje każdą przezroczystość białym.
Marcy

85

W tym celu stworzyłem nowe proste narzędzie. Możesz usunąć kanał alfa (przezroczystość) wielu plików .png w ciągu kilku sekund.

Usuwanie kanału alfa

Możesz pobrać stąd http://alphachannelremover.blogspot.com


17
Dziękuję Ci. Nienawidzę tego, że Apple dodał kolejny krok do przechwytywania, zapisywania i wysyłania zrzutów ekranu do sklepu iTunesConnect.
Andrew Smith

2
To narzędzie jest bardzo proste, ale bardzo przydatne. W przeciwnym razie musiałem spędzać czas z aplikacją Apple Preview, aby usuwać przezroczystość jeden po drugim, bardzo czasochłonne. Teraz możliwe jest tworzenie wielu plików za pomocą jednego strzału.
bpolat

1
Bardzo przydatny, dziękuję! Dla wszystkich programistów, których Apple ma, można by pomyśleć, że mogliby po prostu automatycznie usunąć kanał alfa. Przysięgam, że żadna z przesłanych przeze mnie ikon nie miała żadnej przezroczystości, ale przesłanie nie powiodło się tylko dlatego, że zostały zapisane w formacie pozwalającym na przezroczystość. westchnienie
devios1,

2
Zapraszamy. Właściwie stworzyłem program dla siebie w wyniku frustracji, którą miałem podczas przesyłania moich aplikacji do Apple, a następnie postanowiłem udostępnić go społeczności. Tutaj jest to oprogramowanie open source na github, możesz zajrzeć do kodu lub użyć tego, co chcesz.
bpolat

1
Doskonały! Uratowałeś mi godzinę lub dwie dzisiaj. 475 zdjęć do przesłania z powodu przeprojektowania!
Nancy

73

Użyj mogrifynarzędzia z ImageMagickpakietu, aby usunąć kanał alfa.

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

Aktualizacja od 3 maja

Możesz sprawdzić, czy obraz zawiera kanał alfa, uruchamiając:

sips -g all image.png

W przypadku renderowania zrzutów ekranu w Symulatorze iOS możesz upuścić kanał alfa, przechodząc BOOL opaque = YESdo UIGraphicsBeginImageContextWithOptions:

UIGraphicsBeginImageContextWithOptions(imageSize, YES, 0); 

3
Krótsze wyjście do sprawdzenia alfa można uzyskać za pomocą poleceniasips -g hasAlpha *.png
Anton Matosov

mogrify -alpha off 👍
system

27

Należy usunąć kanały alfa podczas przesyłania zdjęcia do iTunes Connect.

Możesz to zrobić za pomocą aplikacji Preview, Photos App (stary iPhoto), Pixelmator, Adobe Photoshop i GIMP.

Zapowiedź

1- Otwórz zdjęcie w podglądzie (jeśli zdjęcie znajduje się w albumie w aplikacji Zdjęcia (stara iPhoto), a następnie po prostu przeciągnij je z albumu na pulpit. Następnie kliknij z wciśniętym klawiszem Control (kliknij prawym przyciskiem myszy) zduplikowane zdjęcie i wybierz Preview.app w menu Otwórz za pomocą).

2- Wybierz Eksportuj ... w menu Plik, a po wybraniu miejsca docelowego odznacz Alpha u dołu i kliknij Eksportuj .

Plik ==> Eksportuj ...

Alfa

Pixelmator

1- Otwórz obraz w Pixelmator, bez tworzenia nowego pliku Pixelmator . Po prostu przeciągnij zdjęcie do okna Pixelmator.

2- W menu Udostępnij kliknij Eksportuj do Internetu ...

PO POŁUDNIU

3- Na górnym pasku usuń zaznaczenie opcji Przezroczystość .

4- Kliknij przycisk Dalej, a następnie zapisz gdzieś nowy plik.

Na koniec prześlij nowe zdjęcie do iTunes Connect.

ŻYŁKA

1- Otwórz zdjęcie w GIMP.

2- Otwórz menu Warstwa .

3- W obszarze Przezroczystość kliknij Usuń kanał alfa .

4- Zapisz zdjęcie.

Adobe Photoshop

1- Otwórz zdjęcie w Adobe Photoshop.

2- W menu Warstwa kliknij Maska warstwy, a następnie Z przezroczystości .

3- Usuń maskę warstwy, klikając prawym przyciskiem myszy maskę w panelu Warstwy i wybierając Usuń maskę warstwy .


1
To nie będzie działać w systemie Mac OS High Sierra. Wypróbuj niższą wersję, aby wyeksportować bez wersji alfa. Mam nadzieję, że to komuś pomoże.
Satheeshwaran

11

Jeśli używasz Photoshopa, przejdź do Plik> Zapisz dla Internetu (Command + Opcja + Shift + S). Upewnij się, że przezroczystość nie jest zaznaczona, a to powinno działać.


Dziwne. Działa to w przypadku pojedynczego obrazu. Ale kiedy próbuję zapisać akcje i przeprowadzić eksport partii - powstałe obrazy nadal mają alfa.
kelin

6

Nadal problem w 2019 roku: =)

To działało dla mnie: Wybierz wszystkie obrazy, które chcesz załadować -> Kliknij prawym przyciskiem myszy -> Otwórz w podglądzie -> Eksportuj -> Odznacz alfa -> Użyj wyeksportowanych obrazów.


5

W Pixelmator możesz użyć opcji „Udostępnij> Eksportuj do Internetu ...” ( + + E)

wprowadź opis zdjęcia tutaj

i odznacz Przezroczystość na pasku opcji narzędzia.

wprowadź opis zdjęcia tutaj


5

Rozszerzenie odpowiedzi Roman B. To wciąż problem, ładowałem aplikację Cordova. moje rozwiązanie za pomocą mogrify:

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

Następnie zarchiwizowano i sprawdzono poprawność. 👍


4

mam ten sam problem, po prostu skompresuj plik png na https://tinypng.com/ online, a następnie spróbuj przesłać ten nowy skompresowany plik png.

to dla mnie praca.


Nie działało to dla mnie - nadal miało kanał alfa
Andrew


3

Możesz usunąć kanał alfa z pliku PNG z wiersza poleceń za pomocą pngcrush, używając flagi „-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

Zwróć uwagę na zmianę z RGBA na RGB: kanał Alpha zniknął!

pngcrush mieszka pod adresem http://pmt.sourceforge.net/pngcrush/


2

W obliczu tego samego problemu, spróbuj użyć formatu JPG !! To, co działało dla mnie tutaj, to użycie pliku jpg zamiast PNG, ponieważ pliki jpg nie używają funkcji alfa ani przezroczystości. Zrobiłem to za pośrednictwem konwertera obrazów online. Możesz także otworzyć obraz w podglądzie, a następnie Plik-> Eksportować i odznaczyć alfa jako opcję zapisania obrazu i użycia tego obrazu.


1

Aby obejść ten problem, partie przekonwertowałem za pomocą programu Fireworks moje pliki PNG32 na PNG24, aby szybko i łatwo je przesłać. JPEG działa również, ale jest stratny.



1

Photoshop

  1. Pokrój to
  2. Zapisz dla Internetu
  3. Odznacz Przezroczystość

0

Jeśli masz zainstalowany imagemagick, możesz umieścić następujący alias w pliku .bash_profile. Konwertuje każdy png w katalogu do pliku jpg, który automatycznie usuwa alfa. Możesz użyć powstałych plików jpg jako zrzutów ekranu.

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

jpg oznacza pogorszenie jakości, nie zrobiłbym tego, tylko gdybym naprawdę potrzebował, aby był mniejszy.
Zsolt Szatmari,

0

To, co działało dla mnie tutaj, to użycie pliku jpg zamiast PNG, ponieważ pliki jpg nie używają funkcji alfa ani przezroczystości. Zrobiłem to za pośrednictwem konwertera obrazów online. Możesz także otworzyć obraz w podglądzie, a następnie Plik-> Eksportować i odznaczyć alfa jako opcję zapisania obrazu i użycia tego obrazu.


Tak, ale pytasz o problemy z użyciem JPEG. Są one z natury zaprojektowane do „hałaśliwych” obrazów, takich jak zdjęcia, ale prowadzą do artefaktów na obrazach o wielu blokowych kolorach i prostych krawędziach, takich jak zrzuty ekranu.
JamEngulfer

0

Możesz po prostu utworzyć nowy dokument Photoshopa i ustawić jego domyślne tło na Białe zamiast Przezroczystego. Następnie skopiuj i wklej obraz do nowo utworzonego dokumentu i zapisz go.


0

Możesz eksportować do formatu PNG bez alfa w podglądzie. Po prostu otwórz obraz, wybierz eksport, wybierz PNG, odznacz Alpha i kliknij Zapisz. Podgląd obsługuje również eksport partii, jeśli otworzysz wszystkie swoje zdjęcia jednocześnie.


0

Eksportowanie ze szkicu

Aby uniknąć przezroczystości, upewnij się, że żadna warstwa nie wykracza poza granice obszaru roboczego.


-2

Konwertuj obraz PNG do formatu JPEG.


ITunes Connect nie akceptuje plików JPEG w niektórych przypadkach. Na przykład ikona aplikacji IOS musi być png.
eclux
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.