0

次の状況:

NSObjectサブクラス化されたオブジェクトのインスタンスがあります。そのプロパティの1つはNSImageです。オブジェクトをインスタンス化した後、それNSKeyedArchiverをデータに変換し、ネットワーク経由で送信し、アーカイブを解除してNSKeyedUnarchiver、画像をNSImageView(setAnimates:YES)に表示します。ここまでは問題ありません。画像は他のマシンで表示できます。問題:
アニメーションGIFを送信すると、アニメーション化されません。理由はわかりません...アニメーションが離れている理由はありますか?ありがとうございました!

アップデート

アーカイブする前にアニメーション画像を開くと、NSImageViewアニメーション化されます。問題はおそらくアーカイブです...

更新2

ネットワーク経由でデータを送信せずにワークフロー全体をテストしました。アーカイブとアーカイブ解除を再度行うだけです。私が疑ったように、それはNSKeyed(Un)Archiverの問題です。
アニメーションが失われます。しかし、これを防ぐために何をすべきでしょうか?

4

2 に答える 2

2

画像インスタンスではなく、元の画像データをアーカイブするだけです。

于 2010-02-11T07:02:32.793 に答える
0

デフォルトでNSImageは、元のソース画像データを保持しません。おそらく起こっているのはNSImage、1フレームの静的ビットマップのみをアーカイブし、元のコンテンツを破棄していることです。

電話をかける場合は[yourNSImageObject setDataRetained:YES]NSImage元のデータ(この場合はアニメーションGIF)をそのまま使用する必要があります。イメージが最初に作成されたときにこれを試してから、アーカイブ/アーカイブ解除されたときに何が起こるかを確認することをお勧めします。

于 2010-02-11T02:15:10.193 に答える