ลบช่องอัลฟาในรูปภาพ


106

ฉันมีไอคอนแอพสำหรับ iOS แต่ Apple ไม่อนุญาตให้มีอัลฟ่าอยู่ในรูปภาพ จะลบช่องอัลฟ่านี้ได้อย่างไร ฉันมีแค่ภาพ png กับฉันฉันไม่มีไฟล์ต้นฉบับเพราะเพื่อนของฉันทำภาพให้ฉัน


5
เปิด PNG ในโปรแกรมแก้ไขภาพและบันทึกใหม่โดยปิดใช้งานช่องอัลฟาหรือไม่
Alexander O'Mara

1
คำตอบที่ยอมรับจะสูญเสียข้อมูลรูปภาพและมีขั้นตอนพิเศษที่ไม่จำเป็น ดูวิธีแก้ปัญหาด้านล่างแทน: stackoverflow.com/a/38256612/5764320
Mycah

ฉันยังได้สร้างเครื่องมือขนาดเล็กที่คุณสามารถลากและวางรูปภาพของคุณและลบช่องอัลฟาโดยไม่สูญเสียข้อมูลรูปภาพ: removealphachannel.com
Ali Nasserzadeh

คำตอบ:


51

สมมติว่าคุณไม่มีโปรแกรมแก้ไขภาพอื่นคุณสามารถเปิดได้ในการแสดงตัวอย่างบน Mac ของคุณและใช้ตัวเลือกการส่งออกเพื่อบันทึกใหม่ในรูปแบบอื่นเพื่อให้แน่ใจว่าคุณได้กำจัดช่องอัลฟาแล้วการส่งออกอาจเป็นการดีที่สุด เป็น JPG (คุณภาพดีที่สุด) จากนั้นเปิดและส่งออกเป็น PNG อีกครั้ง

ต้องบอกว่าฉันสงสัยว่าคุณอาจจะโอเคในการส่งไอคอนที่มีช่องโปร่งใสตราบเท่าที่ไม่มีความโปร่งใสจริง


10
ซึ่งจะส่งผลให้คุณภาพสูญเสียไปเล็กน้อยและไฟล์ PNG ที่มีขนาดใหญ่ขึ้นด้วยเนื่องจากรูปแบบ PNG ไม่เหมาะสมในการบีบอัดประเภทของสิ่งประดิษฐ์ที่คุณได้รับเมื่อสร้างไฟล์ JPG นอกจากนี้ Apple ไม่ปฏิเสธภาพ PNG ที่มีช่องอัลฟาแม้ว่าจะไม่มีความโปร่งใสก็ตาม
philwilks

ฉันลองใช้ macOS Sierra เวอร์ชันเก่าแล้วและใช้งานได้
Bhaumik Desai

12
คุณสามารถยกเลิกการเลือกช่องทำเครื่องหมาย "อัลฟา" ได้ในขณะที่ส่งออกเป็น PNG ไม่จำเป็นต้องส่งออกเป็น JPG ก่อน
Petr Peller

จะดำเนินการกับข้อมูลภาพเพื่อลดช่องภาพจาก 4 เป็น 3 ได้อย่างไร?
voldikss

5
PNG ใด ๆ ที่มีช่องโปร่งใสจะไม่ได้รับการยอมรับไม่ว่าความโปร่งใสจะแสดงในรูปภาพหรือไม่ก็ตาม
gbarnett

249

คำตอบที่ยอมรับในการส่งออกเป็น JPG แล้วไม่แนะนำให้กลับไปที่ PNG

  • เป็นขั้นตอนเพิ่มเติมในกระบวนการนี้ (การส่งออก 2 รายการ)
  • JPG นั้นสูญเสียดังนั้นคุณจะสูญเสียข้อมูลภาพบางส่วน

นี่เป็นวิธีที่ง่ายและรวดเร็วมากโดยไม่ต้องส่งออกเพิ่มเติมหรือบันทึกลงใน JPG (lossy):

การใช้แอพ Preview (Mac):

  1. เปิดภาพ
  2. Command-Shift-Sเพื่อทำซ้ำ (สร้างสำเนา)
  3. Command-Sเพื่อบันทึก
  4. ยกเลิกการเลือกช่องทำเครื่องหมาย"อัลฟ่า"
  5. ลบ "คัดลอก" จากชื่อไฟล์ (รวมช่องว่าง)
    • การดำเนินการนี้จะเขียนทับต้นฉบับของคุณหากคุณต้องการเก็บต้นฉบับไว้เพียงแค่ปล่อย "สำเนา" ไว้ในชื่อ
  6. บันทึก
  7. คลิก 'แทนที่'เพื่อยืนยันว่าคุณต้องการเขียนทับต้นฉบับ
    • จำเป็นเฉพาะในกรณีที่คุณเขียนทับต้นฉบับของคุณ ลบช่องอัลฟา

2
^ นี่คือคำตอบที่ดีกว่า IMHO JPG ไม่รองรับช่องอัลฟาและสิ่งนี้จะช่วยให้คุณใช้รูปแบบ LOSSLESS และจัดการกับช่องอัลฟ่า (แทนที่จะหลีกเลี่ยง)
Cody-PHP-jQuery

4
ฉันไม่เข้าใจว่าเหตุใดทีม iTunes Store จึงแสดงข้อผิดพลาดนี้ (ช่องอัลฟ่า) ในไอคอนแอปนาฬิกาเมื่อในเวอร์ชันก่อนหน้าพวกเขาคิดว่าถูกต้อง หมดเวลา! ขอบคุณ Apple Inc!
Markus

ขอบคุณมากสำหรับโซลูชันที่ไม่สูญเสีย!
Shchvova

10
ด้วย macOS High Sierra การแสดงตัวอย่างดูเหมือนจะบันทึก PNG ด้วยช่องอัลฟาเสมอแม้ว่าจะไม่ได้เลือกช่องทำเครื่องหมายก็ตาม หากฉันเปิดไฟล์ที่บันทึกไว้ช่องข้อมูลจะเขียนว่า "Has Alpha: 1" เสมอ hasAlpha: yesเครื่องมือจิบยังบอกฉัน นอกจากนี้ iTunes Store ยังบ่นเกี่ยวกับช่องอัลฟ่าที่ไม่ต้องการ ("การดำเนินการล้มเหลว - ไอคอน App Store ... ไม่สามารถโปร่งใสหรือมีช่องอัลฟา")
Stefan

2
ดังกล่าวโดย @Psychomentally, ImageMagick convert in.png -alpha off out.pngในที่สุดก็ทำงานให้ฉัน: เรื่อง ดูตัวอย่าง: การเปิด / ปิด "อัลฟา" ในกล่องโต้ตอบการส่งออกจะเปลี่ยนขนาดไฟล์ที่คาดการณ์ไว้ แต่การบันทึกจะเขียนไฟล์ด้วยข้อมูลอัลฟ่าเสมอ (และขนาดที่สอดคล้องกัน)
Stefan

59

หากคุณต้องการลบช่องอัลฟาทั้งหมดออกจากไดเร็กทอรีที่มีไอคอนให้ใช้คำสั่งนี้:

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

1
สิ่งนี้ให้ภาพเอาต์พุต 8 บิตแทนที่จะเป็น 24 บิต
Stepan Yakovenko

2
ถ้าคุณเปลี่ยน-alpha remove -alpha off $i;ไป-alpha remove -alpha off png24:$i; ก็จะส่งออก 24bit PNG
ลอว์เรนเดวิส Ryerson IV

37

หากคุณใช้แอป Preview ไม่จำเป็นต้องส่งออกแล้วส่งออกใหม่ระหว่าง jpg และ png เพียงเลือกส่งออกและด้านล่างประเภทไฟล์ (PNG) คุณจะเห็นช่องทำเครื่องหมายอัลฟ่ายกเลิกการตั้งค่าและบันทึก


4
ฉันเคยใช้วิธีนี้ แต่ใน MacOS High Sierra การยกเลิกการเลือก Alpha ใน Preview จะไม่ทำอะไรนอกจากคุณจะเลือก JPG เป็นผลลัพธ์ ถ้าฉันลองเปิด PNG ส่งออก PNG โดยไม่มีอัลฟ่าและเปิด PNG ใหม่มันจะมีช่องอัลฟ่า
Dan Loughney

ทำงานให้ฉันใน 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

ฉันจะเลือกไฟล์ png บน 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: command not found
Marlhex

9

เพิ่งได้รับข้อผิดพลาดต่อไปนี้เมื่อพยายามอัปโหลดแอปของฉันไปที่ iTunes app store:

การดำเนินการของ iTunes Store ล้มเหลว

ข้อผิดพลาด ITMS-90717: "ไอคอน App Store ไม่ถูกต้องไอคอน App Store ในแค็ตตาล็อกเนื้อหาใน" MyApp.app "ต้องไม่โปร่งใสและไม่มีช่องอัลฟา"

ฉันยืนยันว่าไอคอนแอพสโตร์ของฉันมีช่องอัลฟาด้วยการค้นหาเนื้อหาใน Finder และค้นหาข้อมูล (⌘ + i) ภายใต้ข้อมูลเพิ่มเติมแสดงให้เห็น:

ช่องอัลฟ่า: ใช่

พบวิธีแก้ปัญหาด้านบนเพื่อใช้การแสดงตัวอย่างเพื่อลบช่องอัลฟ่าโดยการส่งออกโดยไม่ได้ทำเครื่องหมายในช่องอัลฟ่า แต่คิดวิธีส่งออกเป็นกลุ่มเนื่องจากฉันมีเนื้อหา 18 รายการที่ฉันต้องการเพื่อถอดช่องอัลฟ่าออก

วิธีที่ฉันได้รับการส่งออกเป็นกลุ่มไปทำงานคือการเลือกเนื้อหาไอคอนแอปทั้งหมดของฉันในตัวค้นหา> คลิกขวา> เปิด (หรือเปิดด้วยการดูตัวอย่าง)

ตอนนี้เนื้อหาทั้งหมดจะปรากฏในหน้าต่างเดียวกัน เลือกทั้งหมด (⌘ + a) จากนั้นเลือกไฟล์> ส่งออกรูปภาพที่เลือก…> ขยายตัวเลือก> ยกเลิกการเลือกช่องทำเครื่องหมายอัลฟ่า> เลือก (โฟลเดอร์ปลายทางของคุณ)

เสร็จแล้ว! ขณะนี้ภาพทั้งหมดของคุณจะถูกส่งออกโดยปิดช่องอัลฟา


1
ฉันลองแบบเดียวกัน แต่ใช้งานไม่ได้อีกต่อไปบน High Sierra ช่องอัลฟ่าจะไม่ถูกลบออกในการแสดงตัวอย่าง
Satheeshwaran

6

ในการลบช่องอัลฟาจาก png:

บน Mac: การแสดงตัวอย่างเวอร์ชัน 9.0 (macOS Sierra) สามารถลบช่องอัลฟาได้หากคุณส่งออกหรือบันทึกภาพ

ดูตัวอย่างเวอร์ชัน 10.0 (944.2) (macOS High Sierra) ไม่ได้ลบช่องอัลฟา ทั้งการส่งออกและ / หรือบันทึกไม่ได้ลบช่องอัลฟาออกจากภาพ


2
สิ่งนี้เน้น 2 ปัญหา facepalm ล่าสุดของ Apple .... High Sierra ที่ไม่สนใจตัวเลือกการบันทึกและสาเหตุที่หลายคนมาที่นี่ Xcode ไม่สามารถอัปโหลดแอปได้ทันทีเนื่องจากความโปร่งใสของไอคอน
MobileVet

4

หลังจากพบปัญหาเดียวกันในบริบทของแอปพลิเคชัน Flutter ฉันได้ทุ่มเทเว็บไซต์ง่ายๆสำหรับงานนี้ซึ่งคุณสามารถลบช่องอัลฟาของรูปภาพ:

ลบ Alpha Channel

โดยทั่วไปฉันเรียกใช้ ImageMagick โดยใช้ Web Assembly โดยตรงในเบราว์เซอร์ดังนั้นจึงไม่มีการอัปโหลดรูปภาพของคุณและคุณไม่จำเป็นต้องใช้เครื่องมืออื่น ๆ เช่น Gimp


2

ช่องทำเครื่องหมายอัลฟ่าไม่มีในการแสดงตัวอย่างอีกต่อไป


ฉันยังสามารถมองเห็นและใช้งานได้คุณต้องส่งออกไฟล์
ออสการ์

2
ฉันสามารถที่สองนี้มันหายไป
Wep0n

2

เนื่องจากคุณใช้ Mac ครั้งต่อไปคุณอาจต้องการใช้ Automator แปลงรูปภาพเป็น BMP (ไม่สูญเสีย) และกลับเป็น PNG ปล่อยให้มันบันทึกและ voila ...


0

ฉันใส่โซลูชันที่ดีมากของ 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

-2

ฉันมีปัญหาเดียวกันนี้ แต่คำตอบอื่น ๆ ไม่ได้ผลสำหรับฉันในตอนนี้ (อาจเป็นข้อบกพร่องของ Apple) ฉันพบว่าคุณสามารถใช้เว็บไซต์นี้เพื่อลบช่องอัลฟาออกจากรูปภาพได้


2
แต่นี่เป็นเว็บไซต์เดียวกับที่นี่: stackoverflow.com/a/59591313/5468463
Vega

คำตอบที่ซ้ำกัน
Repose
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.