Xóa kênh alpha trong hình ảnh


101

Tôi có biểu tượng ứng dụng cho iOS nhưng Apple không cho phép alpha có trong hình ảnh. Làm cách nào để xóa kênh alpha này? Tôi chỉ có hình ảnh png với tôi, tôi không có tệp nguồn như bạn tôi đã làm hình ảnh cho tôi.


5
Mở PNG trong trình chỉnh sửa hình ảnh và lưu lại với kênh alpha bị tắt?
Alexander O'Mara

1
Câu trả lời được chấp nhận làm mất dữ liệu hình ảnh và có thêm bước không cần thiết. Thay vào đó, hãy xem giải pháp bên dưới: stackoverflow.com/a/38256612/5764320
Mycah 13/1216

Tôi cũng đã tạo ra một công cụ nhỏ, nơi bạn có thể chỉ cần kéo và thả hình ảnh của mình và xóa kênh alpha mà không làm mất dữ liệu hình ảnh: removealphachannel.com
Ali Nasserzadeh

Câu trả lời:


48

Giả sử bạn không có trình chỉnh sửa hình ảnh khác, thì bạn có thể mở nó trong Xem trước trên máy Mac của mình và sử dụng tùy chọn Xuất để lưu lại ở định dạng khác- để đảm bảo bạn thoát khỏi kênh alpha, tốt nhất nên xuất sang JPG (chất lượng tốt nhất), sau đó mở và xuất lại dưới dạng PNG.

Đã nói rằng, tôi nghi ngờ rằng bạn có thể OK khi gửi biểu tượng có kênh minh bạch miễn là không có tính minh bạch thực sự.


9
Điều này sẽ làm giảm chất lượng một chút và tệp PNG cũng lớn hơn vì định dạng PNG không phù hợp để nén loại hiện vật bạn nhận được khi tạo tệp JPG. Ngoài ra, Apple từ chối hình ảnh PNG với các kênh alpha ngay cả khi không có độ trong suốt thực tế.
philwilks

Tôi đã thử trên phiên bản macOS Sierra cũ hơn và nó hoạt động.
Bhaumik Desai

8
Bạn thực sự có thể chỉ cần bỏ chọn hộp kiểm "Alpha" trong khi xuất sang PNG. Không cần xuất sang JPG trước.
Petr Peller

Làm thế nào để thực hiện thao tác trên dữ liệu ảnh để giảm kênh ảnh từ 4 xuống 3?
voldikss

4
Bất kỳ tệp PNG nào có kênh minh bạch sẽ không được chấp nhận, bất kể độ trong suốt có hiển thị trong hình ảnh hay không.
gbarnett

236

Câu trả lời được chấp nhận để xuất sang JPG, sau đó quay lại PNG không được khuyến nghị.

  • Đó là một bước bổ sung trong quy trình (2 lần xuất)
  • JPG bị mất dữ liệu, vì vậy bạn sẽ mất một số dữ liệu hình ảnh

Đây là một cách cực nhanh và dễ dàng để thực hiện việc này mà không cần xuất thêm hoặc lưu vào JPG (bị mất):

Sử dụng ứng dụng Xem trước (Mac):

  1. Mở hình ảnh
  2. Command-Shift-S để nhân bản (tạo bản sao)
  3. Command-S để lưu
  4. Bỏ chọn hộp kiểm "Alpha"
  5. Xóa "bản sao" khỏi tên tệp (bao gồm cả khoảng trắng)
    • Điều này sẽ ghi đè bản gốc của bạn, nếu bạn muốn giữ bản gốc, chỉ cần để lại tên "bản sao"
  6. Tiết kiệm
  7. Nhấp vào 'Thay thế' để xác nhận bạn muốn ghi đè bản gốc
    • Chỉ cần thiết nếu bạn đang ghi đè bản gốc của mình xóa kênh alpha

2
^ đây là một câu trả lời tốt hơn, IMHO. JPG không hỗ trợ kênh alpha và điều này sẽ cho phép bạn sử dụng định dạng LOSSLESS và xử lý kênh alpha (thay vì tránh nó).
Cody-PHP-jQuery,

4
Tôi không hiểu tại sao iTunes Store Team lại hiển thị lỗi này (kênh Alpha) trong các biểu tượng ứng dụng đồng hồ, trong khi ở các phiên bản trước họ cho là đúng. Mất thời gian! Cảm ơn Apple Inc!
Markus

Cảm ơn rất nhiều cho giải pháp không mất dữ liệu!
Shchvova

10
Với macOS High Sierra, Xem trước dường như luôn lưu các tệp PNG VỚI một kênh alpha, ngay cả khi hộp kiểm được bỏ chọn. Nếu tôi mở tệp đã lưu, hộp thông tin luôn cho biết "Có Alpha: 1". Công cụ từng ngụm cũng cho tôi biết hasAlpha: yes. Thêm vào đó, iTunes Store phàn nàn về kênh alpha không mong muốn ("Thao tác không thành công - Biểu tượng App Store ... không thể trong suốt cũng như chứa kênh alpha").
Stefan

2
Như đã đề cập bởi @Psychomentally, ImageMagick cuối cùng làm việc cho tôi: convert in.png -alpha off out.png. Re. Xem trước: bật / tắt "alpha" trong hộp thoại xuất sẽ thay đổi kích thước tệp dự đoán, nhưng việc lưu luôn ghi tệp với thông tin alpha (và kích thước tương ứng).
Stefan

52

nếu bạn cần xóa tất cả kênh alpha khỏi thư mục có biểu tượng, hãy sử dụng lệnh này:

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

nếu bạn có Mac OS Mojave và "không tìm thấy lệnh chuyển đổi"

brew install imagemagick

Để cài đặt Homebrew

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" < /dev/null 2> /dev/null

1
điều này mang lại hình ảnh đầu ra 8bit thay vì 24bit
Stepan Yakovenko

Nếu bạn thay đổi -alpha remove -alpha off $i;thành -alpha remove -alpha off png24:$i; nó sẽ xuất ra một tệp png 24bit
Lawrence Ryerson Davis IV

37

Nếu bạn đang sử dụng ứng dụng Xem trước, không cần xuất rồi xuất lại giữa jpg và png, chỉ cần chọn xuất và bên dưới loại tệp (PNG), bạn sẽ thấy hộp kiểm alpha, hãy bỏ đặt và lưu.


4
Tôi đã từng sử dụng phương pháp này, nhưng trên MacOS High Sierra, việc bỏ chọn Alpha trong Xem trước không làm được gì trừ khi bạn chọn JPG làm đầu ra. Nếu tôi cố gắng mở PNG, Xuất PNG với Alpha và mở PNG mới, nó có kênh Alpha.
Dan Loughney

Đã làm việc cho tôi ở High Sierra (10.13.4)
fl034. 14/09/18

13

Bạn có thể thử imagemagick (cũng có thể dễ dàng thay đổi kích thước cho các kích thước khác nhau):

convert in.png -background black -alpha remove -alpha off -resize 1024x1024 out.png

Làm thế nào để chọn file png trên bash cmd
Marlhex

Marlhexs-MacBook-Pro: Edgar marlhex $ ls MÀN HÌNH TRƯA.jpg nuevo icon-5.png MÀN HÌNH TRƯA.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

13

Trước tiên, không cần xuất hình ảnh sang jpg. Bạn có thể bỏ chọn hộp kiểm cho kênh alpha và xuất trực tiếp từ png sang png mà không có kênh alpha trong ứng dụng xem trước.

nhập mô tả hình ảnh ở đây


9

Chỉ gặp lỗi sau khi cố gắng tải ứng dụng của tôi lên cửa hàng ứng dụng iTunes:

Hoạt động iTunes Store không thành công

LỖI ITMS-90717: "Biểu tượng App Store không hợp lệ. Biểu tượng App Store trong danh mục nội dung trong 'MyApp.app' không được trong suốt cũng như không chứa kênh alpha".

Tôi xác nhận rằng các biểu tượng cửa hàng ứng dụng của tôi đã bao gồm kênh alpha bằng cách định vị nội dung trong Trình tìm kiếm và tra cứu thông tin của nó (⌘ + i). Bên dưới Thông tin thêm, nó cho thấy:

Kênh alpha: Có

Đã tìm thấy giải pháp ở trên để sử dụng Xem trước để xóa kênh alpha bằng cách xuất nó với hộp kiểm Alpha không được chọn, nhưng đã tìm ra cách để xuất hàng loạt chúng vì tôi có 18 nội dung cần loại bỏ kênh alpha.

Cách tôi làm cho tính năng xuất hàng loạt hoạt động là chọn tất cả nội dung biểu tượng ứng dụng của tôi trong công cụ tìm> nhấp chuột phải> mở (hoặc mở bằng bản xem trước)

Tất cả nội dung bây giờ sẽ xuất hiện trong cùng một cửa sổ. Chọn tất cả (⌘ + a), rồi chọn Tệp> Xuất hình ảnh đã chọn…> Tùy chọn mở rộng> bỏ chọn hộp kiểm Alpha> Chọn (thư mục đích của bạn)

Làm xong! Tất cả hình ảnh của bạn hiện đã được xuất với kênh alpha bị loại bỏ.


1
Tôi đã thử tương tự nhưng nó không hoạt động nữa trên High Sierra. Các kênh alpha không bị xóa trên Xem trước.
Satheeshwaran

6

Để xóa kênh alpha khỏi png:

trên Mac: Xem trước phiên bản 9.0 (macOS Sierra) có thể xóa kênh alpha nếu bạn xuất hoặc lưu hình ảnh.

Phiên bản xem trước 10.0 (944.2) (macOS High Sierra) không xóa kênh alpha. Cả Xuất và / hoặc Lưu đều không xóa kênh alpha khỏi hình ảnh.


2
Đây nổi bật 2 vấn đề facepalm gần đây của Apple .... High Sierra bỏ qua một tiết kiệm tùy chọn và lý do nhiều người đang ở đây, Xcode đột nhiên không thể tải ứng dụng vì biểu tượng minh bạch
MobileVet

4

Gặp phải vấn đề tương tự trong ngữ cảnh của các ứng dụng Flutter, tôi đã dành riêng một trang web đơn giản cho nhiệm vụ này, nơi bạn có thể xóa các kênh alpha của hình ảnh:

Xóa kênh Alpha

Về cơ bản, tôi chạy ImageMagick bằng cách sử dụng Web Assembly trực tiếp trong trình duyệt, vì vậy không có hình ảnh nào của bạn được tải lên và bạn không cần bất kỳ công cụ nào khác như GIMP.


2

hộp kiểm alpha không còn ở đó trong bản xem trước


Tôi vẫn có thể xem và sử dụng nó, bạn phải xuất tệp.
Oscar

2
Tôi có thể thứ hai điều này, nó đã biến mất.
Wep0n

2

Chà, vì bạn đang sử dụng máy Mac, nên lần tới bạn có thể chỉ muốn sử dụng Automator. Chuyển đổi hình ảnh thành BMP (không mất dữ liệu) và trở lại PNG. Hãy để nó lưu và thì đấy ...


0

Tôi đã đưa giải pháp rất hay của Nikita Pushkar vào một tập lệnh shell chuyển đổi tất cả các biểu tượng iOS được tìm thấy trong res/icon/ios:

Nó sử dụng brew để cài đặt imagemagick nếu không có, vì vậy tôi đoán nó sẽ chỉ chạy trên 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

Tôi gặp vấn đề tương tự nhưng các câu trả lời khác không phù hợp với tôi bây giờ (có thể là lỗi của Apple). Tôi phát hiện ra rằng bạn có thể sử dụng trang web này để xóa kênh alpha khỏi hình ảnh.


2
Nhưng đây là cùng một trang web như ở đây: stackoverflow.com/a/59591313/5468463
Vega

Câu trả lời trùng lặp
Repose
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.