Подтвердить что ты не робот

Xcode 6 (beta 3): Неподдерживаемый формат пикселей в CSI или Невозможно создать непрозрачное изображение из csi растровых данных

При загрузке UIImages с png-изображениями в Xcode 6 beta 3 в Swift следующим образом:

    PipsImg = (UIImage(named: "Die-1"))

или

    PipsImg = [(UIImage(named: "Die-1")),(UIImage(named: "Die-2"))]

из связанных изображений, хранящихся в папке Images.xcassets, я получаю следующие фатальные ошибки времени выполнения:

 SimpleAnimation[680:60b] Unsupported pixel format in CSI
 SimpleAnimation[680:60b] Unable to create unsliced image from csi bitmap data.

это, по-видимому, разрешено в бета-версии 4, однако они останутся на месте немного, как иногда эти регрессии

4b9b3361

Ответ 1

Это вызвано ошибкой в ​​Xcode 6 (бета 3 в это время). Кажется, это происходит только в том случае, если целью сборки является iOS 7.x

Чтобы обойти эту проблему:

1) удалите файлы из контейнера Images.xcassets.

2) поместите изображения непосредственно в папку "Поддерживаемые файлы".

Примечание. Не требуется добавлять расширение ".png" внутри вашего кода, что делает это обходным путем.

Создайте RADAR (отчет об ошибке) для Apple.

Ответ 2

XCode 6.0.1 все еще имеет эту проблему. Если вы добавили .jpg в Images.xcassets и попытаетесь установить приложение на устройство iOS 7.

Чтобы исправить это, просто конвертируйте .jpg в .png

Ответ 3

Ответ инженера Apple:

Проблема в том, что приложения iOS 7 не могут иметь изображения JPEG в файле CAR. actool должен был скопировать JPEG как свободное изображение в папку приложения. Чтобы обойти эту проблему, вы должны либо преобразовать изображение в PNG, либо включить JPEG в качестве ресурса за пределами каталога активов.

Ответ 4

Я решил эту проблему через:

  • Запустить iOS Simulator
  • Reset содержимое и настройки с помощью меню "iOS Simulator > Reset Содержание и настройки".
  • Он работает.

Ответ 5

В Xcode теперь у нас есть возможность сделать срез для ресурсов изображения. Если добавлена ​​резка, соответствующий json для изображения в каталоге активов получает информацию об изменении размера. Это может выглядеть, например, так:

"resizing" : {
    "mode" : "3-part-vertical",
    "center" : {
      "mode" : "fill",
      "height" : 6
    },
    "capInsets" : {
      "top" : 16,
      "bottom" : 6
    }
  }

iOS 7.0 не обрабатывает правильную нарезку. Поэтому удаление информации обрезки из json может помочь устранить проблему (в моем случае это было решение).