web-dev-qa-db-ja.com

Xcode 6(ベータ3):CSIでサポートされていないピクセル形式、またはcsiビットマップデータからスライスされていない画像を作成できません

次のようにSwiftでXcode6ベータ3のpng画像を含むUIImagesをロードする場合:

    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で解決されたようですが、これらのリグレッションが発生することがあるため、しばらくはそのままにしておきます

24
dave_the_dev

これは、Xcode 6(現時点ではベータ3)のバグが原因です。ビルドターゲットがiOS7.xの場合にのみ発生するようです

この問題を回避するには:

1)Images.xcassetsコンテナからファイルを削除します。

2)画像を「SupportingFiles」フォルダに直接配置します。

注:コード内に「.png」拡張子を追加する必要はないため、これはクリーンな回避策になります。

AppleへのRADAR(バグレポート)を作成してください。

35
dave_the_dev

XCode6.0.1にはまだこの問題があります。 Images.xcassetsに.jpgを追加し、iOS7デバイスにアプリをインストールしようとした場合。

これを修正するには、.jpgを.pngに変換するだけです。

23
PowHu

Appleエンジニアの応答:

問題は、iOS7アプリがCARファイルにJPEG画像を含めることができないことです。 actoolは、JPEGをルーズイメージとしてアプリのフォルダーにコピーする必要があります。この問題を回避するには、画像をPNGに変換するか、アセットカタログの外部のリソースとしてJPEGを含める必要があります。

17
King-Wizard

私はこの問題を次の方法で解決しました:

  1. IOSシミュレーターを実行する
  2. 「iOSシミュレーター>コンテンツと設定のリセット」メニューからコンテンツと設定をリセットします。
  3. できます。
0
ccoroom

Xcodeでは、画像リソースのスライスを実行できるようになりました。スライスが追加されると、アセットカタログ内の画像に対応するjsonがサイズ変更情報を取得します。これは例えばこのように見えるかもしれません

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

iOS7.0はスライスを適切に処理しません。したがって、jsonからスライス情報を削除すると、問題の修正に役立つ場合があります(私の場合はそれが解決策でした)。

0
Sergey