Hapus saluran alfa pada gambar

103

Saya memiliki ikon aplikasi untuk iOS tetapi Apple tidak mengizinkan alfa ada di gambar. Bagaimana cara menghapus saluran alfa ini? Saya hanya memiliki gambar png dengan saya, saya tidak memiliki file sumber karena teman saya membuat gambar untuk saya.

zbz.lvlv
sumber
5
Buka PNG di editor gambar dan simpan ulang dengan saluran alfa dinonaktifkan?
Alexander O'Mara
1
Jawaban yang diterima kehilangan data gambar dan memiliki langkah ekstra yang tidak diperlukan. Lihat solusi di bawah ini sebagai gantinya: stackoverflow.com/a/38256612/5764320
Mycah
Saya juga telah membuat alat kecil, di mana Anda dapat dengan mudah menarik dan melepaskan gambar Anda dan menghapus saluran alfa, tanpa kehilangan data gambar: removealphachannel.com
Ali Nasserzadeh

Jawaban:

48

Dengan asumsi Anda tidak memiliki editor gambar lain, maka Anda dapat membukanya di Pratinjau di Mac Anda, dan menggunakan opsi Ekspor untuk menyimpannya dalam format yang berbeda- untuk memastikan Anda menyingkirkan saluran alfa, mungkin yang terbaik adalah mengekspor ke JPG (kualitas terbaik), lalu buka dan ekspor sebagai PNG lagi.

Karena itu, saya curiga Anda mungkin baik-baik saja mengirimkan ikon dengan saluran transparansi selama tidak ada transparansi yang sebenarnya.

danielquokka
sumber
9
Ini akan mengakibatkan sedikit penurunan kualitas, dan juga file PNG yang lebih besar karena format PNG tidak cocok untuk mengompresi jenis artefak yang Anda dapatkan saat membuat file JPG. Selain itu, Apple menolak gambar PNG dengan saluran alfa meskipun sebenarnya tidak ada transparansi.
philwilks
Saya mencoba versi macOS Sierra yang lebih lama, dan berhasil.
Bhaumik Desai
10
Anda sebenarnya dapat menghapus centang pada kotak "Alpha" saat mengekspor ke PNG. Tidak perlu mengekspor ke JPG terlebih dahulu.
Petr Peller
Bagaimana cara melakukan operasi pada data gambar untuk mengurangi saluran gambar dari 4 menjadi 3?
voldikss
5
Semua PNG dengan saluran transparansi tidak akan diterima, tidak peduli apakah transparansi ditampilkan dalam gambar atau tidak.
gbarnett
240

Jawaban yang diterima untuk mengekspor ke JPG, lalu kembali ke PNG tidak disarankan.

  • Ini adalah langkah ekstra dalam proses (2 ekspor)
  • JPG bersifat lossy, jadi Anda akan kehilangan beberapa data gambar

Berikut adalah cara super cepat dan mudah untuk melakukan ini tanpa ekspor ekstra atau menyimpan ke (lossy) JPG:

Menggunakan aplikasi Pratinjau (Mac):

  1. Buka gambarnya
  2. Command-Shift-S untuk Menduplikasi (membuat salinan)
  3. Command-S untuk Menyimpan
  4. Hapus centang pada kotak "Alpha"
  5. Hapus "copy" dari nama file (termasuk spasi)
    • Ini akan menimpa dokumen asli Anda, jika Anda ingin mempertahankan aslinya, biarkan "salin" di namanya
  6. Menyimpan
  7. Klik 'Ganti' untuk mengonfirmasi bahwa Anda ingin menimpa aslinya
    • Hanya diperlukan jika Anda menimpa dokumen asli Anda hapus saluran alfa
Mycah
sumber
2
^ ini adalah jawaban yang lebih baik, IMHO. JPG tidak mendukung saluran alfa dan ini akan memungkinkan Anda untuk menggunakan format LOSSLESS dan menangani saluran alfa (alih-alih menghindarinya).
Cody-PHP-jQuery
4
Saya tidak mengerti mengapa Tim iTunes Store menampilkan kesalahan ini (saluran Alpha) di ikon aplikasi jam, padahal di versi sebelumnya mereka menganggapnya benar. Waktu yang hilang! Terima kasih Apple Inc!
Markus
Terima kasih banyak atas solusi lossless!
Shchvova
10
Dengan macOS High Sierra, Pratinjau tampaknya selalu menyimpan PNG dengan saluran alfa, meskipun kotak centang tidak dicentang. Jika saya membuka file yang disimpan, kotak info selalu bertuliskan "Memiliki Alpha: 1". Alat menyesap juga memberi tahu saya hasAlpha: yes. Selain itu, iTunes Store mengeluh tentang saluran alfa yang tidak diinginkan ("Operasi Gagal - Ikon App Store… tidak dapat transparan atau mengandung saluran alfa").
Stefan
2
Seperti yang disebutkan oleh @Psychomentally, ImageMagick akhirnya bekerja untuk saya: convert in.png -alpha off out.png. Kembali. Pratinjau: mengaktifkan / menonaktifkan "alfa" dalam dialog ekspor mengubah ukuran file yang diprediksi, tetapi menyimpan selalu menulis file dengan informasi alfa (dan ukuran yang sesuai).
Stefan
55

jika Anda perlu menghapus semua saluran alfa dari direktori dengan ikon, gunakan perintah ini:

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

jika Anda memiliki Mac OS Mojave dan "perintah konversi tidak ditemukan"

brew install imagemagick

Untuk menginstal Homebrew

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" < /dev/null 2> /dev/null
Nikita Pushkar
sumber
1
ini memberikan gambar keluaran 8bit, bukan 24bit
Stepan Yakovenko
Jika Anda mengubah -alpha remove -alpha off $i;ke -alpha remove -alpha off png24:$i; itu akan menampilkan 24bit png
Lawrence Ryerson Davis IV
37

Jika Anda menggunakan aplikasi Pratinjau, tidak perlu mengekspor lalu mengekspor ulang antara jpg dan png, cukup pilih ekspor dan di bawah jenis file (PNG) Anda akan melihat kotak centang alfa, batalkan setelan, dan simpan.

Oscar
sumber
4
Saya dulu menggunakan metode ini, tetapi di MacOS High Sierra, menghapus centang Alpha di Pratinjau tidak melakukan apa pun kecuali Anda memilih JPG sebagai output. Jika saya mencoba membuka PNG, Ekspor PNG w / o Alpha, dan membuka PNG baru, ia memiliki saluran Alpha.
Dan Loughney
Bekerja untuk saya di High Sierra (10.13.4)
fl034
14

Tidak perlu mengekspor gambar ke jpg terlebih dahulu. Anda dapat menghapus centang pada kotak untuk saluran alfa dan mengekspor langsung dari png ke png tanpa saluran alfa di aplikasi pratinjau.

masukkan deskripsi gambar di sini

Stefan
sumber
13

Anda dapat mencoba imagemagick (juga dengan mudah mengubah ukuran untuk berbagai ukuran):

convert in.png -background black -alpha remove -alpha off -resize 1024x1024 out.png
Psikomenal
sumber
bagaimana cara memilih file png di cmd bash
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: perintah tidak ditemukan
Marlhex
9

Baru saja mendapat kesalahan berikut saat mencoba mengunggah aplikasi saya ke toko aplikasi iTunes:

Operasi iTunes Store Gagal

ERROR ITMS-90717: "Ikon App Store Tidak Valid. Ikon App Store dalam katalog aset di 'MyApp.app' tidak boleh transparan atau mengandung saluran alfa."

Saya mengonfirmasi bahwa ikon toko aplikasi saya memang menyertakan saluran alfa dengan mencari aset di Finder dan mencari infonya (⌘ + i). Di bawah More info, itu menunjukkan:

Saluran alfa: Ya

Menemukan solusi di atas untuk menggunakan Pratinjau untuk menghapus saluran alfa dengan mengekspornya dengan kotak centang Alfa tidak dicentang, tetapi menemukan cara untuk mengekspor secara berkelompok karena saya memiliki 18 aset yang saya perlukan untuk menghapus saluran alfa.

Cara saya membuat batch ekspor berfungsi adalah dengan memilih semua aset ikon aplikasi saya di finder> klik kanan> buka (atau buka dengan pratinjau)

Semua aset sekarang akan muncul di jendela yang sama. Pilih semua (⌘ + a), lalu pilih File> Ekspor Gambar yang Dipilih…> Perluas Opsi> hapus centang pada kotak centang Alpha> Pilih (folder tujuan Anda)

Selesai! Semua gambar Anda sekarang diekspor dengan saluran alfa dilucuti.

Toland Hon
sumber
1
Saya mencoba hal yang sama tetapi tidak berfungsi lagi di High Sierra. Saluran alfa tidak dihapus pada Pratinjau.
Satheeshwaran
6

Untuk menghapus saluran alfa dari png:

di Mac: Pratinjau versi 9.0 (macOS Sierra) dapat menghapus saluran alfa jika Anda mengekspor atau menyimpan gambar.

Pratinjau versi 10.0 (944.2) (macOS High Sierra) tidak menghapus saluran alfa. Baik Ekspor dan / atau Simpan tidak menghapus saluran alfa dari gambar.

Hynek
sumber
2
Ini menyoroti 2 masalah facepalm terbaru oleh Apple .... High Sierra mengabaikan opsi simpan DAN alasan banyak orang di sini, Xcode tiba-tiba tidak dapat mengunggah aplikasi karena transparansi ikon
MobileVet
4

Setelah mengalami masalah yang sama dalam konteks aplikasi Flutter, saya telah mendedikasikan situs web sederhana untuk tugas ini di mana Anda dapat menghapus saluran alfa gambar:

Hapus Saluran Alpha

Pada dasarnya saya menjalankan ImageMagick menggunakan Web Assembly langsung di browser, jadi tidak ada gambar Anda yang diunggah dan Anda tidak memerlukan alat lain seperti Gimp.

Ali Nasserzadeh
sumber
2

kotak centang alfa tidak lagi ada di pratinjau

vboombatz
sumber
Saya masih dapat melihat dan menggunakannya, Anda harus mengekspor file.
Oscar
2
Saya bisa kedua ini, itu hilang.
Wep0n
2

Nah, karena Anda menggunakan Mac, lain kali Anda mungkin hanya ingin menggunakan Automator. Ubah gambar menjadi BMP (lossless) dan kembali ke PNG. Biarkan itu menyelamatkan dan voila ...

Anticro
sumber
0

Saya memasukkan solusi Nikita Pushkar yang sangat bagus ke dalam skrip shell yang mengubah semua ikon iOS yang ditemukan di res/icon/ios:

Ini menggunakan brew untuk menginstal imagemagick jika tidak tersedia, jadi saya kira ini hanya akan berjalan di 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
Peter T.
sumber
-2

Saya mengalami masalah yang sama, tetapi jawaban lain tidak berfungsi untuk saya sekarang (mungkin ini bug Apple). Saya menemukan bahwa Anda dapat menggunakan situs web ini untuk menghapus saluran alfa dari gambar.

Bhavin Patel
sumber
2
Tetapi ini adalah situs yang sama seperti di sini: stackoverflow.com/a/59591313/5468463
Vega
Jawaban duplikat
Istirahat