ฉันมีไอคอนแอพสำหรับ iOS แต่ Apple ไม่อนุญาตให้มีอัลฟ่าอยู่ในรูปภาพ จะลบช่องอัลฟ่านี้ได้อย่างไร ฉันมีแค่ภาพ png กับฉันฉันไม่มีไฟล์ต้นฉบับเพราะเพื่อนของฉันทำภาพให้ฉัน
ฉันมีไอคอนแอพสำหรับ iOS แต่ Apple ไม่อนุญาตให้มีอัลฟ่าอยู่ในรูปภาพ จะลบช่องอัลฟ่านี้ได้อย่างไร ฉันมีแค่ภาพ png กับฉันฉันไม่มีไฟล์ต้นฉบับเพราะเพื่อนของฉันทำภาพให้ฉัน
คำตอบ:
สมมติว่าคุณไม่มีโปรแกรมแก้ไขภาพอื่นคุณสามารถเปิดได้ในการแสดงตัวอย่างบน Mac ของคุณและใช้ตัวเลือกการส่งออกเพื่อบันทึกใหม่ในรูปแบบอื่นเพื่อให้แน่ใจว่าคุณได้กำจัดช่องอัลฟาแล้วการส่งออกอาจเป็นการดีที่สุด เป็น JPG (คุณภาพดีที่สุด) จากนั้นเปิดและส่งออกเป็น PNG อีกครั้ง
ต้องบอกว่าฉันสงสัยว่าคุณอาจจะโอเคในการส่งไอคอนที่มีช่องโปร่งใสตราบเท่าที่ไม่มีความโปร่งใสจริง
คำตอบที่ยอมรับในการส่งออกเป็น JPG แล้วไม่แนะนำให้กลับไปที่ PNG
นี่เป็นวิธีที่ง่ายและรวดเร็วมากโดยไม่ต้องส่งออกเพิ่มเติมหรือบันทึกลงใน JPG (lossy):
การใช้แอพ Preview (Mac):
hasAlpha: yes
เครื่องมือจิบยังบอกฉัน นอกจากนี้ iTunes Store ยังบ่นเกี่ยวกับช่องอัลฟ่าที่ไม่ต้องการ ("การดำเนินการล้มเหลว - ไอคอน App Store ... ไม่สามารถโปร่งใสหรือมีช่องอัลฟา")
convert in.png -alpha off out.png
ในที่สุดก็ทำงานให้ฉัน: เรื่อง ดูตัวอย่าง: การเปิด / ปิด "อัลฟา" ในกล่องโต้ตอบการส่งออกจะเปลี่ยนขนาดไฟล์ที่คาดการณ์ไว้ แต่การบันทึกจะเขียนไฟล์ด้วยข้อมูลอัลฟ่าเสมอ (และขนาดที่สอดคล้องกัน)
หากคุณต้องการลบช่องอัลฟาทั้งหมดออกจากไดเร็กทอรีที่มีไอคอนให้ใช้คำสั่งนี้:
for i in `ls *.png`; do convert $i -background black -alpha remove -alpha off $i; done
หากคุณมี Mac OS Mojave และมี "ไม่พบคำสั่งแปลง"
brew install imagemagick
ในการติดตั้ง Homebrew
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" < /dev/null 2> /dev/null
-alpha remove -alpha off $i;
ไป-alpha remove -alpha off png24:$i;
ก็จะส่งออก 24bit PNG
หากคุณใช้แอป Preview ไม่จำเป็นต้องส่งออกแล้วส่งออกใหม่ระหว่าง jpg และ png เพียงเลือกส่งออกและด้านล่างประเภทไฟล์ (PNG) คุณจะเห็นช่องทำเครื่องหมายอัลฟ่ายกเลิกการตั้งค่าและบันทึก
คุณสามารถลอง imagemagick (ปรับขนาดได้อย่างง่ายดายสำหรับขนาดต่างๆ):
convert in.png -background black -alpha remove -alpha off -resize 1024x1024 out.png
เพิ่งได้รับข้อผิดพลาดต่อไปนี้เมื่อพยายามอัปโหลดแอปของฉันไปที่ iTunes app store:
การดำเนินการของ iTunes Store ล้มเหลว
ข้อผิดพลาด ITMS-90717: "ไอคอน App Store ไม่ถูกต้องไอคอน App Store ในแค็ตตาล็อกเนื้อหาใน" MyApp.app "ต้องไม่โปร่งใสและไม่มีช่องอัลฟา"
ฉันยืนยันว่าไอคอนแอพสโตร์ของฉันมีช่องอัลฟาด้วยการค้นหาเนื้อหาใน Finder และค้นหาข้อมูล (⌘ + i) ภายใต้ข้อมูลเพิ่มเติมแสดงให้เห็น:
ช่องอัลฟ่า: ใช่
พบวิธีแก้ปัญหาด้านบนเพื่อใช้การแสดงตัวอย่างเพื่อลบช่องอัลฟ่าโดยการส่งออกโดยไม่ได้ทำเครื่องหมายในช่องอัลฟ่า แต่คิดวิธีส่งออกเป็นกลุ่มเนื่องจากฉันมีเนื้อหา 18 รายการที่ฉันต้องการเพื่อถอดช่องอัลฟ่าออก
วิธีที่ฉันได้รับการส่งออกเป็นกลุ่มไปทำงานคือการเลือกเนื้อหาไอคอนแอปทั้งหมดของฉันในตัวค้นหา> คลิกขวา> เปิด (หรือเปิดด้วยการดูตัวอย่าง)
ตอนนี้เนื้อหาทั้งหมดจะปรากฏในหน้าต่างเดียวกัน เลือกทั้งหมด (⌘ + a) จากนั้นเลือกไฟล์> ส่งออกรูปภาพที่เลือก…> ขยายตัวเลือก> ยกเลิกการเลือกช่องทำเครื่องหมายอัลฟ่า> เลือก (โฟลเดอร์ปลายทางของคุณ)
เสร็จแล้ว! ขณะนี้ภาพทั้งหมดของคุณจะถูกส่งออกโดยปิดช่องอัลฟา
ในการลบช่องอัลฟาจาก png:
บน Mac: การแสดงตัวอย่างเวอร์ชัน 9.0 (macOS Sierra) สามารถลบช่องอัลฟาได้หากคุณส่งออกหรือบันทึกภาพ
ดูตัวอย่างเวอร์ชัน 10.0 (944.2) (macOS High Sierra) ไม่ได้ลบช่องอัลฟา ทั้งการส่งออกและ / หรือบันทึกไม่ได้ลบช่องอัลฟาออกจากภาพ
หลังจากพบปัญหาเดียวกันในบริบทของแอปพลิเคชัน Flutter ฉันได้ทุ่มเทเว็บไซต์ง่ายๆสำหรับงานนี้ซึ่งคุณสามารถลบช่องอัลฟาของรูปภาพ:
โดยทั่วไปฉันเรียกใช้ ImageMagick โดยใช้ Web Assembly โดยตรงในเบราว์เซอร์ดังนั้นจึงไม่มีการอัปโหลดรูปภาพของคุณและคุณไม่จำเป็นต้องใช้เครื่องมืออื่น ๆ เช่น Gimp
เนื่องจากคุณใช้ Mac ครั้งต่อไปคุณอาจต้องการใช้ Automator แปลงรูปภาพเป็น BMP (ไม่สูญเสีย) และกลับเป็น PNG ปล่อยให้มันบันทึกและ voila ...
ฉันใส่โซลูชันที่ดีมากของ Nikita Pushkar ลงในเชลล์สคริปต์ที่แปลงไอคอน iOS ทั้งหมดที่พบในres/icon/ios
:
มันใช้การชงเพื่อติดตั้ง 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
ฉันมีปัญหาเดียวกันนี้ แต่คำตอบอื่น ๆ ไม่ได้ผลสำหรับฉันในตอนนี้ (อาจเป็นข้อบกพร่องของ Apple) ฉันพบว่าคุณสามารถใช้เว็บไซต์นี้เพื่อลบช่องอัลฟาออกจากรูปภาพได้