0

as3のbitmapdataのサイズに最大の制約を課しています。以下の制約に準拠し、現在の画像のアスペクト比を維持する最大の幅と高さを見つけようとしています。私の画像は2980x3220(幅x高さ)です。

Bitmapdataの制約:AIR1.5およびFlashPlayer 10では、BitmapDataオブジェクトの最大サイズは幅または高さが8,191ピクセルであり、ピクセルの総数は16,777,215ピクセルを超えることはできません。(したがって、BitmapDataオブジェクトの幅が8,191ピクセルの場合、高さは2,048ピクセルになります。)

どうやって答えにたどり着いたのか教えていただければ、それも素晴らしいことです

編集:幅と高さの値を見つけます。ここで、幅/高さ=比率= 0.9254658385 AND幅*高さ=最大ピクセルに近いがそれを超えない数値(16,777,215)

4

1 に答える 1

3

2980*3220=9595600。ここで、16777216 をこの数で割ると、制約 = 1.7484 を維持しながら、ビットマップにどれだけ多くのピクセルを含めることができるかがわかります。縦横比を維持するには、幅と高さの両方を同じ割合で増やす必要があるため、これの平方根 = 1.3222 を取得する必要があります (これは 4 桁目で切り捨てられます)。寸法にこれを掛けると、3940*4257 になり、合計 16772580 ピクセルになり、幅と高さの両方が 8192 未満になります。

したがって、画像の最大幅は 3940、高さは 4257 です。

于 2013-03-19T19:28:51.783 に答える