2012-06-08 2 views
0

투명한 PNG (비트 맵)에 텍스처를 적용하고 싶지만 투명 영역을 포함하고 싶지는 않습니다. 텍스처는 비투명 면만 커버합니다. 내 png도 3D입니다. 그림은 아래와 같습니다. 투명하지 않은면을 변경하려면 색상 변환이 잘 작동하지만 질감을 어떻게 바꿀 수 있는지 잘 모릅니다.
그것은 이와 같은 코드입니다.
투명한 PNG에 텍스처를 적용하려면 어떻게해야합니까? actionscript3

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

container.addChild(ss); 


내가 어떻게 할 수 있습니까? 감사합니다. .

enter image description here

답변

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

1

개인적으로 나는이 작업/문제가 더 BitmapData 클래스 처리 될 것이라고 생각합니다. 예. 모든 이미지 픽셀을 순환하는 알고리즘을 작성하고 getPixel()을 사용하여 픽셀이 투명한지 확인한 다음 setPixel()을 사용하여 해당하는 경우 이미지 픽셀을 채 웁니다. bitmapdata 클래스를 사용하면 약간의 유연성도 확보 할 수 있습니다. 예 : 대상 이미지를 '채울'때 사용할 이미지 부분을 선택합니다. 희망이 도움이 될 수 있습니다.

관련 문제