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.
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.
Câu trả lời:
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ự.
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ị.
Đâ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):
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").
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).
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
-alpha remove -alpha off $i;
thành -alpha remove -alpha off png24:$i;
nó sẽ xuất ra một tệp png 24bit
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.
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
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ỏ.
Để 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.
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:
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.
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 ...
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
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.