SwiftUI прозрачный png становится белым (jpg)

#swiftui

#swiftui

Вопрос:

У меня есть png, который является частично прозрачным, а именно у него есть альфа-канал. Но когда я использовал следующий код, прозрачный становится белым. Я предполагаю, что альфа-канал отсутствует. Вы знаете, как решить эту проблему? Спасибо.

Это воспроизводимый код.

 Image("power")
.resizable()
.aspectRatio(contentMode: .fit)
 

Это изображение

введите описание изображения здесь

Это эффект для симулятора

введите описание изображения здесь

Комментарии:

1. Не могли бы вы прикрепить это изображение для тестирования?

2. Отлично работает с Xcode 12.4 / iOS 14.4. Как вы это представляете? Не могли бы вы предоставить минимальный воспроизводимый пример?

3. Мой Xcode равен 12.2. Я его обновляю.

4. @Asperi, все еще не работает

5. @Asperi, я обнаружил, что тот же код отлично работает в новом проекте, но не работает в моем текущем проекте. Итак, некоторые настройки в этом проекте вызвали проблему.

Ответ №1:

Я использовал этот код, чтобы показать прозрачный эффект, но цвета переднего плана теряются.

 Color.black
    .frame(width: home.screenWidth-2*home.defaultPadding,
    height: home.screenWidth)
    .mask(Image("power")
      .resizable()
      .aspectRatio(contentMode: .fit))
 

Причина

Большое спасибо за вашу помощь!!!! Без вашей поддержки я не могу найти причину. введите описание изображения здесь

Сжатие для png должно быть автоматическим, мой проект каким-то образом унаследован (базовый), поэтому он стал белым.

С кодом и изображением проблем нет.

Ответ №2:

Это то, что должно произойти. У вас есть изображение с альфа-каналом на белом фоне, поэтому вы не можете видеть ни одного из белых элементов на вашем изображении. Измените цветовую схему на темную с помощью .preferredColorScheme(.dark), и вы увидите это:

введите описание изображения здесь