1

私は 1 週間ほど前からある問題を解決しようとしてきました。役に立たなかった。私は現在、ゲームにスクリーンショットを取り、モバイル デバイスのギャラリーに表示する機能を備えた iOS/Android アプリに取り組んでいます。

私は CameraRoll オブジェクトを使用しています。問題は、画面上の一部のオブジェクトにスムージングが適用されていることです。ただし、CameraRoll のスクリーンショットはこれを無視しています。これにより、結果のスクリーンショットにギザギザのあるオブジェクトがいくつか含まれます。

グーグルで同じ問題について助けを求める叫び声がいくつか見つかりましたが、答えはありません。

どんな助けでも大歓迎です。

4

1 に答える 1

1

ビットマップのスムージングは​​デフォルトで無効になっているため、フラッシュのジャギーは一般的です (より多くの CPU を使用します)。CameraRoll MediaEvent.SELECT イベントから新しいビットマップを作成することをお勧めします。内部でevent.dataは、どちらがMediaPromise オブジェクトであるかを返す必要があります。fileその中に、画像を見つけることができる読み取り専用のプロパティがあるはずです。

次に、スムージングを使用して新しい画像を作成するだけです。

var img:Bitmap = new Bitmap();
img.bitmapData = file.bitmapData;
img.smoothing = true;
addChild(img);

これまでモバイルでこれを試したことはありませんが、これはよくある問題であり、皆さんが遭遇していると思います。


補遺:

システム ベースのスクリーンショット サービスに問題がある場合は、純粋な AS3 を使用して独自のスクリーンショットを作成できます。ロジックとしては、AS3 はステージのピクセルごとのブロック コピーを実行する必要があります (これにより、画像の平滑化値が考慮されます)。

これを試して:

var myBitmapData:BitmapData = new BitmapData(stage.stageWidth, stage.stageHeight);
myBitmapData.draw(stage);
于 2013-03-26T19:20:51.120 に答える