İOS için bir uygulama simgem var ancak Apple, resimde alfa olmasına izin vermiyor. Bu alfa kanalı nasıl kaldırılır? Yanımda sadece png resmi var, arkadaşım resmi benim için yaptığı için kaynak dosyam yok.
İOS için bir uygulama simgem var ancak Apple, resimde alfa olmasına izin vermiyor. Bu alfa kanalı nasıl kaldırılır? Yanımda sadece png resmi var, arkadaşım resmi benim için yaptığı için kaynak dosyam yok.
Yanıtlar:
Başka bir görüntü düzenleyiciniz olmadığını varsayarsak, onu Mac'inizde Önizleme'de açabilir ve farklı bir formatta yeniden kaydetmek için Dışa Aktar seçeneğini kullanabilirsiniz - alfa kanalından kurtulmanızı sağlamak için, en iyisi dışa aktarmaktır. JPG'ye (en iyi kalite), ardından onu açın ve tekrar PNG olarak dışa aktarın.
Bunu söyledikten sonra, gerçek bir şeffaflık olmadığı sürece muhtemelen şeffaf bir kanal içeren bir simge göndermekte sorun yaşamadığından şüpheleniyorum.
JPG'ye ve ardından PNG'ye geri aktarmak için kabul edilen yanıt önerilmez.
İşte bunu fazladan dışa aktarmadan veya (kayıplı) JPG'ye kaydetmeden yapmanın süper hızlı ve kolay bir yolu:
Önizleme uygulamasını kullanarak (Mac):
hasAlpha: yes
. Ayrıca, iTunes Store istenmeyen alfa kanalından şikayetçi ("İşlem Başarısız - App Store simgesi ... şeffaf olamaz veya alfa kanalı içeremez").
convert in.png -alpha off out.png
. Yeniden. Önizleme: Dışa aktarma iletişim kutusunda "alfa" nın açılması / kapatılması tahmin edilen dosya boyutunu değiştirir, ancak kaydetme, dosyayı her zaman alfa bilgileriyle (ve karşılık gelen boyutla) yazar.
tüm alfa kanallarını dizinden kaldırmanız gerekiyorsa, bu komutu kullanın:
for i in `ls *.png`; do convert $i -background black -alpha remove -alpha off $i; done
Mac OS Mojave'niz varsa ve "dönüştürme komutu bulunamadıysa"
brew install imagemagick
Homebrew'i yüklemek için
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" < /dev/null 2> /dev/null
-alpha remove -alpha off $i;
için -alpha remove -alpha off png24:$i;
bunun çıktısı bir 24bit png
Önizleme uygulamasını kullanıyorsanız, jpg ve png arasında dışa aktarmaya ve ardından yeniden dışa aktarmaya gerek yoktur, yalnızca dışa aktarmayı seçin ve dosya türünün (PNG) altında bir alfa onay kutusu göreceksiniz, ayarını kaldırıp kaydedin.
İmagemagick'i deneyebilirsiniz (ayrıca farklı boyutlar için kolayca yeniden boyutlandırın):
convert in.png -background black -alpha remove -alpha off -resize 1024x1024 out.png
Uygulamamı iTunes uygulama mağazasına yüklemeye çalışırken şu hatayı aldım:
iTunes Store İşlemleri Başarısız Oldu
HATA ITMS-90717: "Geçersiz App Store Simgesi. 'MyApp.app'deki varlık kataloğundaki App Store simgesi şeffaf olamaz ve bir alfa kanalı içeremez."
Finder'da varlığı bularak ve bilgilerine bakarak (my + i) uygulama mağazası simgelerimin alfa kanalını içerdiğini doğruladım. Daha fazla bilgi altında şunu gösteriyordu:
Alfa kanalı: Evet
Alfa onay kutusu işaretlenmemiş olarak dışa aktararak alfa kanalını kaldırmak için Önizleme'yi kullanmak için yukarıdaki çözümü buldum, ancak alfa kanalını çıkarmam gereken 18 varlığım olduğundan bunları toplu olarak dışa aktarmanın bir yolunu buldum.
Çalışmak için toplu dışa aktarımın yolu, bulucuda tüm uygulama simgesi varlıklarımı seçmek> sağ tıklama> aç (veya önizlemeyle açmak)
Tüm varlıklar artık aynı pencerede görünecektir. Tümünü seçin (⌘ + a) ve ardından Dosya> Seçili Resimleri Dışa Aktar…> Seçenekleri Genişlet> Alfa onay kutusunun işaretini kaldırın> Seç (hedef klasörünüz)
Bitti! Tüm resimleriniz artık alfa kanalı çıkarılmış olarak dışa aktarılır.
Alfa kanalını png'den kaldırmak için:
Mac'te: Önizleme sürümü 9.0 (macOS Sierra), görüntüyü dışa aktarır veya kaydederseniz alfa kanalını kaldırabilir.
Önizleme sürümü 10.0 (944.2) (macOS High Sierra) alfa kanalını kaldırmaz. Hem Dışa Aktar hem / veya Kaydet, alfa kanalını görüntüden kaldırmaz.
Flutter uygulamaları bağlamında da aynı problemle karşılaştıktan sonra, bu görev için alfa görüntü kanallarını kaldırabileceğiniz basit bir web sitesi ayırdım:
Temel olarak ImageMagick'i Web Assembly'yi kullanarak doğrudan tarayıcıda çalıştırıyorum, böylece resimlerinizden hiçbiri yüklenmiyor ve Gimp gibi başka araçlara ihtiyacınız yok.
Nikita Pushkar'ın çok güzel çözümünü, içinde bulunan tüm iOS simgelerini dönüştüren bir kabuk betiğine koydum res/icon/ios
:
İmgeMagick'i kurmak için brew kullanıyor, bu yüzden sadece Mac'te çalışacağını tahmin ediyorum.
#! /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
Aynı sorunu yaşadım, ancak diğer cevaplar şu anda benim için işe yaramadı (bir Apple hatası olabilir). Alfa kanalını bir görüntüden kaldırmak için bu web sitesini kullanabileceğinizi anladım .