1

円形や正方形など、特定の形状の画像から bytearray データを取得するにはどうすればよいですか?

このサークル内のピクセルのみを変更したいとしましょう。この Bytearray データを取得するにはどうすればよいですか? 代替テキスト 何か案は?

4

1 に答える 1

2

画像の左上を基準にして、円を含む長方形を定義します。

var radius:Number = 100;
var centerX:Number = 50;
var centerY:NUmber = 400;

var rect:Rectangle = new Rectangle(centerX-radius, centerY-radius, radius*2, radius*2);

次に、 を使用して、長方形内のピクセルのgetPixels()を返します。ByteArrayこれで、各ピクセルをループして、円の中に含まれているかどうかを確認できます。

var image:BitmapData;
var pixels:ByteArray = image.getPixels(rect);

for(var x:int; x<rect.width; x++){
    for(var y:int=0; y<rect.height; y++){
        // Read the pixels data ->
        var pixel:uint = pixels.readUnsignedInt();
        // Check this pixels distance from the center to make sure it is inside the circle.
        var dx:Number = x - radius;
        var dy:Number = y - radius;
        if(dx*dx+dy*dy <= radius*radius){
            // This pixel is inside the circle.
            ...
        }
    }
}

次に、必要に応じて変更したら、次を使用してイメージに書き戻すことができますsetPixels()

image.setPixels(rect, pixels);

私は実際にこれを使用したりテストしたりしていないので、うまくいかないかもしれません。代わりにand
を使用すると、データの操作が簡単になる場合もあり ます。getVector()setVector()

于 2010-10-19T09:53:27.110 に答える