0

透過png(ビットマップ)にテクスチャを適用したいのですが、透過部分は入れたくないです。テクスチャは非透明面のみをカバーします。私のpngも3Dです。写真を以下に示します。色変換は非透明面を変更するのにうまく機能しますが、テクスチャを変更する方法がわかりません。
そのようなコードです。

var ss:Sprite=new Sprite();
ss.graphics.beginBitmapFill(exampleModel);
ss.graphics.drawRect(0, 0, 200, 200);
ss.graphics.endFill();

container.addChild(ss);


どうやってやるの?ありがとう。

ここに画像の説明を入力

4

2 に答える 2

1

個人的には、この仕事/問題は BitmapData クラスでより適切に処理されると思います。たとえば、すべての画像ピクセルを循環するアルゴリズムを作成し、getPixel() を使用してピクセルが透明かどうかを確認し、必要に応じて setPixel() を使用して画像ピクセルを塗りつぶします。bitmapdata クラスを使用すると、ターゲット画像を「塗りつぶす」ときに使用する画像の部分を選択するなど、ある程度の柔軟性も得られます。これが役立つことを願っています。

于 2012-06-09T12:01:10.863 に答える
0

これは機能します。

private function createHitArea(bitmapData:BitmapData, grainSize:uint=1):Sprite{
    var _hitarea:Sprite = new Sprite();
    _hitarea.graphics.beginFill(0x000000, 1.0);         
    for(var x:uint=0;x<bitmapData.width;x+=grainSize) {
        for(var y:uint=grainSize;y<bitmapData.height;y+=grainSize) {                    
            if(x<=bitmapData.width && y<=bitmapData.height && bitmapData.getPixel(x,y)!=0) {
                _hitarea.graphics.drawRect(x,y,grainSize,grainSize);                        
            }                   
        }
    }           
    _hitarea.graphics.endFill();                        
    return _hitarea;
}

ソース: http://www.webverwirklichung.com/en/blog/programming/flex/creating-hitarea-png-image-transparent-alpha-regions-flex

于 2012-06-14T16:24:23.567 に答える