0
這是我的問題。位移貼圖過濾器不適用於蒙面圖像
我有一個大小爲958 * 580的圖像。當我應用位移貼圖過濾器時,它完美地工作,並且我想要的區域也受到相應的影響。當我遮住這個圖像時,它只顯示過濾器應該作用的區域,沒有任何顯示。圖像被遮罩,但該區域不再受濾鏡的影響。
我不確定我是否錯過了位移貼圖過濾器或面具本身的工作原理,但我希望這裏有人能給我一個或兩個關於可能是什麼問題的指針。
在此先感謝。
這是我的問題。位移貼圖過濾器不適用於蒙面圖像
我有一個大小爲958 * 580的圖像。當我應用位移貼圖過濾器時,它完美地工作,並且我想要的區域也受到相應的影響。當我遮住這個圖像時,它只顯示過濾器應該作用的區域,沒有任何顯示。圖像被遮罩,但該區域不再受濾鏡的影響。
我不確定我是否錯過了位移貼圖過濾器或面具本身的工作原理,但我希望這裏有人能給我一個或兩個關於可能是什麼問題的指針。
在此先感謝。
很難說什麼導致過濾器呈現問題,沒有看到代碼。我沒有遇到過這樣的行爲。請嘗試下面列出的代碼,它應該應用位移過濾器的圖像,然後掩蓋它的圓形:
import flash.display.BitmapData;
import flash.display.Bitmap;
import flash.display.Sprite;
import flash.filters.DisplacementMapFilter;
import flash.geom.Point;
// image is taken form the Library, alternatively you may use Embed metatag
var imageBitmapdata:BitmapData=new imageBd() as BitmapData;
var bitmap:Bitmap=new Bitmap(imageBitmapdata);
bitmap.width=stage.stageWidth;
bitmap.height=stage.stageHeight;
var maskCircle:Sprite=new Sprite();
maskCircle.graphics.beginFill(0xFF00FF, 1);
maskCircle.graphics.drawCircle(300,300,300);
maskCircle.graphics.endFill();
bitmap.filters=[getBitmapFilter()];
bitmap.mask=maskCircle;
addChild(bitmap);
addChild(maskCircle);
function getBitmapFilter():BitmapFilter {
var bitmapData:BitmapData = new BitmapData(stage.stageWidth, stage.stageHeight, true);
bitmapData.perlinNoise(20, 20, 4, 12, true, true);
var mapBitmap:BitmapData = bitmapData;
return new DisplacementMapFilter(mapBitmap,new Point(0, 0),
BitmapDataChannel.RED,
BitmapDataChannel.RED,
-20,
-20,
DisplacementMapFilterMode.CLAMP,
0,
0);
}