| Package | flash.filters |
| Class | public class ConvolutionFilter |
| Inheritance | ConvolutionFilter BitmapFilter Object |
간직해 필터를 작성하려면 , 문장구조법 new ConvolutionFilter() 를 사용합니다. 필터의 사용 방법은, 필터의 적용처 object에 따라서 다릅니다.
filters property를 사용합니다. object의 filters property를 설정해도, object는 변경되지 않습니다. filters property를 클리어 하는 것으로써, 필터를 취소할 수가 있습니다. BitmapData.applyFilter() Methods를 사용합니다. BitmapData object로 applyFilter() 를 호출하는 것에 의해, 소스 BitmapData object와 필터 object가 취득되어 필터를 적용한 결과적으로 얻을 수 있는 이미지가 생성됩니다. 표시 object에 필터를 적용하면, object의 cacheAsBitmap property의 값이 true 로 설정됩니다. 모든 필터를 클리어 하면,cacheAsBitmap 는 원의 값에 돌아옵니다.
결과적으로 얻을 수 있는 이미지의 폭 또는 높이가 2880 픽셀을 넘는 경우, 필터는 적용되지 않습니다. 예를 들어, 필터가 적용된 크기의 큰 무비 클립을 줌인 할 때, 결과적으로 얻을 수 있는 이미지가 2880 픽셀의 제한을 넘는 경우는, 필터가 오프가 됩니다.
See also
| property | 정의 | ||
|---|---|---|---|
| alpha : Number
대체 칼라의 알파 투명도의 값입니다.
| ConvolutionFilter | ||
| bias : Number
매트릭스 변환의 결과에 가산하는 바이어스량입니다.
| ConvolutionFilter | ||
| clamp : Boolean
이미지를 클램프 할 필요가 있을지 어떨지를 나타냅니다.
| ConvolutionFilter | ||
| color : uint
소스 이미지의 밖에 있는 픽셀을 값환하는 16 진수의 칼라치입니다.
| ConvolutionFilter | ||
![]() | constructor : Object
특정의 object 인스턴스의 클래스 object 또는 constructor 함수에의 참조입니다.
| Object | |
| divisor : Number
매트릭스 변환중에 사용하는 제수입니다.
| ConvolutionFilter | ||
| matrix : Array
매트릭스 변환에 사용하는 값의 배열입니다.
| ConvolutionFilter | ||
| matrixX : Number
매트릭스의 x 차원 (매트릭스의 렬수)입니다.
| ConvolutionFilter | ||
| matrixY : Number
매트릭스의 y 차원 (매트릭스의 행수)입니다.
| ConvolutionFilter | ||
| preserveAlpha : Boolean
알파 채널이 필터 효과없이 유지될지 어떨지, 또는 칼라 채널 만이 아니고, 알파 채널에도 간직해 필터가 적용될지 어떨지를 나타냅니다.
| ConvolutionFilter | ||
![]() | prototype : Object
[static]
클래스 또는 함수 object의 prototype object에의 참조입니다.
| Object | |
| Methods | 정의 | ||
|---|---|---|---|
| ConvolutionFilter (matrixX:Number = 0, matrixY:Number = 0, matrix:Array = null, divisor:Number = 1.0, bias:Number = 0.0, preserveAlpha:Boolean = true, clamp:Boolean = true, color:uint = 0, alpha:Number = 0.0)
지정된 Parameters로 ConvolutionFilter 인스턴스를 초기화합니다.
| ConvolutionFilter | ||
| clone ():BitmapFilter
이 필터 object의 복사를 돌려줍니다.
| ConvolutionFilter | ||
![]() | hasOwnProperty (name:String ):Boolean
object로 지정된 property가 정의되고 있는지 어떤지를 나타냅니다.
| Object | |
![]() | isPrototypeOf (theClass:Object ):Boolean
Object 클래스의 인스턴스가, Parameters로서 지정된 object의 prototype 체인내에 있을지 어떨지를 나타냅니다.
| Object | |
![]() | propertyIsEnumerable (name:String ):Boolean
지정된 property가 존재해, 열거 가능한가 어떤가를 나타냅니다.
| Object | |
![]() | setPropertyIsEnumerable (name:String , isEnum:Boolean = true):void
루프 처리에 대한 다이나믹 property의 가용성을 설정합니다.
| Object | |
![]() | toString ():String
지정된 object의 string 표현을 돌려줍니다.
| Object | |
![]() | valueOf ():Object
지정된 object의 원시적치를 돌려줍니다.
| Object | |
| alpha | property |
alpha:Number [read-write]대체 칼라의 알파 투명도의 값입니다. 지정할 수 있는 값은 0 ~ 1.0 입니다. 예를 들어,. 25 를 지정하면, 투명도의 값으로 해서 25% 가 설정됩니다.
Implements public function get alpha():Number
public function set alpha(value:Number ):void
| bias | property |
bias:Number [read-write]매트릭스 변환의 결과에 가산하는 바이어스량입니다. 바이어스에 의해 각 채널의 칼라치가 증가하기 (위해)때문에, 어두운 색은 밝아집니다. 디폴트치는 0 입니다.
Implements public function get bias():Number
public function set bias(value:Number ):void
| clamp | property |
clamp:Boolean [read-write]
이미지를 클램프 할 필요가 있을지 어떨지를 나타냅니다. true 의 경우, 소스 이미지의 밖에 있는 픽셀에 대해서, 입력 이미지의 각 엣지의 칼라치를 복제한다고 하는 방법으로, 필요에 따라서 경계를 따라 입력 이미지를 확장합니다. false 의 경우는, 다른 색을 사용합니다. 그 색은 color property와 alpha property로 지정합니다. 디폴트치는 true 입니다.
public function get clamp():Boolean
public function set clamp(value:Boolean ):void
| color | property |
color:uint [read-write]소스 이미지의 밖에 있는 픽셀을 값환하는 16 진수의 칼라치입니다. 이것은 알파 성분 없음의 RGB 값입니다. 디폴트는 0 입니다.
Implements public function get color():uint
public function set color(value:uint ):void
| divisor | property |
divisor:Number [read-write]매트릭스 변환중에 사용하는 제수입니다. 디폴트치는 1 입니다. 제수가 모든 매트릭스치의 합계와 동일한 경우는, 결과 전체의 칼라 강도가 매끄럽게 됩니다. 값 0 은 무시해, 대신에 디폴트치를 사용합니다.
Implements public function get divisor():Number
public function set divisor(value:Number ):void
| matrix | property |
matrix:Array [read-write]
매트릭스 변환에 사용하는 값의 배열입니다. 이 배열에 포함되는 항목수는 반드시 matrixX * matrixY 에 동일해집니다.
매트릭스의 다다미 포함은,n × m 매트릭스에 근거하고 있습니다. 입력 이미지내의 특정의 픽셀을 인접하는 픽셀과 조합하는 것에 의해, 새로운 픽셀치를 생성합니다. 결과적으로 얻을 수 있는 픽셀은, 대응하는 소스 픽셀 및 연접하는 픽셀에 매트릭스를 적용하는 것으로 산출됩니다.
3 × 3 의 매트릭스 다다미 포함의 경우, 독립하는 칼라 채널 마다 다음의 식을 사용합니다.
dst (x, y) = ((src (x-1, y-1) * a0 + src(x, y-1) * a1....
src(x, y+1) * a7 + src (x+1, y+1) * a8) / divisor) + bias
SSE (Streaming SIMD Extensions : 스트리밍 SIMD 확장)를 제공하는 프로세서로 실행할 경우에 처리가 고속화되는 필터 사양도 있습니다. 간직해 조작이 고속 되는 기준은 다음과 같습니다.
public function get matrix():Array
public function set matrix(value:Array ):void
TypeError — 배열은, 설정시에 null 로 설정됩니다.
|
| matrixX | property |
matrixX:Number [read-write]매트릭스의 x 차원 (매트릭스의 렬수)입니다. 디폴트치는 0 입니다.
Implements public function get matrixX():Number
public function set matrixX(value:Number ):void
| matrixY | property |
matrixY:Number [read-write]매트릭스의 y 차원 (매트릭스의 행수)입니다. 디폴트치는 0 입니다.
Implements public function get matrixY():Number
public function set matrixY(value:Number ):void
| preserveAlpha | property |
preserveAlpha:Boolean [read-write]
알파 채널이 필터 효과없이 유지될지 어떨지, 또는 칼라 채널 만이 아니고, 알파 채널에도 간직해 필터가 적용될지 어떨지를 나타냅니다. false 인 경우는, 알파 채널을 포함해 모든 채널에 정리해 포함을 적용합니다. true 인 경우는, 다다미 포함을 칼라 채널인 만큼 적용합니다. 디폴트치는 true 입니다.
public function get preserveAlpha():Boolean
public function set preserveAlpha(value:Boolean ):void
| ConvolutionFilter | () | constructor |
public 함수 ConvolutionFilter(matrixX:Number = 0, matrixY:Number = 0, matrix:Array = null, divisor:Number = 1.0, bias:Number = 0.0, preserveAlpha:Boolean = true, clamp:Boolean = true, color:uint = 0, alpha:Number = 0.0)지정된 Parameters로 ConvolutionFilter 인스턴스를 초기화합니다.
ParametersmatrixX:Number (default = 0) — 매트릭스의 x 차원 (매트릭스의 렬수)입니다. 디폴트치는 0 입니다.
|
|
matrixY:Number (default = 0) — 매트릭스의 y 차원 (매트릭스의 행수)입니다. 디폴트치는 0 입니다.
|
|
matrix:Array (default = null) — 매트릭스 변환에 사용하는 값의 배열입니다. 이 배열에 포함되는 항목수는 반드시 matrixX * matrixY 에 동일해집니다.
|
|
divisor:Number (default = 1.0) — 매트릭스 변환중에 사용하는 제수입니다. 디폴트치는 1 입니다. 제수가 모든 매트릭스치의 합계와 동일한 경우는, 결과 전체의 칼라 강도가 균등화됩니다. 값 0 은 무시해, 대신에 디폴트치를 사용합니다.
|
|
bias:Number (default = 0.0) — 매트릭스 변환의 결과에 가산하는 바이어스입니다. 디폴트치는 0 입니다.
|
|
preserveAlpha:Boolean (default = true) — false 인 경우는, 알파치가 보관 유지되지 않고, 알파 채널을 포함해 모든 채널에 정리해 포함을 적용합니다. true 인 경우는, 다다미 포함을 칼라 채널인 만큼 적용합니다. 디폴트치는 true 입니다.
|
|
clamp:Boolean (default = true) — true 의 경우, 소스 이미지의 밖에 있는 픽셀에 대해서, 입력 이미지의 소정의 엣지의 칼라치를 복제한다고 하는 방법으로, 필요에 따라서 경계를 따라 입력 이미지를 확장합니다. false 의 경우는, 다른 색을 사용합니다. 그 색은 color property와 alpha property로 지정합니다. 디폴트치는 true 입니다.
|
|
color:uint (default = 0) — 소스 이미지의 밖에 있는 픽셀을 값환하는 16 진수의 칼라치입니다.
|
|
alpha:Number (default = 0.0) — 대체 칼라의 알파입니다.
|
| clone | () | Methods |
public override function clone():BitmapFilter 이 필터 object의 복사를 돌려줍니다.
반환값BitmapFilter —
원의 ConvolutionMatrixFilter 인스턴스와 property가 모두 같다 새로운 ConvolutionFilter 인스턴스.
|
buildChild() 를 4 회 호출해, 이미지의 4 개의 인스턴스를 로드해 표시합니다.
buildChild() 의 각 호출에서는, 인수로서 함수를 취합니다.
이 함수는, 최초의 인스턴스에는 필터를 적용하지 않고, 다른 간직해 필터를
그 이후의 인스턴스에 적용합니다.
buildChild() 함수는
loader 라는 이름의 새로운 Loader object를 작성합니다. buildChild() 를 호출할 때마다,
complete 이벤트를 받는 Loader object에 event listener를 아탓치 합니다.
이러한 이벤트는 buildChild() 에게 건네지는 함수에 의해 처리됩니다.
applyBrightness(),applySharpness(), 및 applyOutline()
함수에서는, 다양한 효과를 실현하기 위해서(때문에),matrix 배열에 다양한 값을
사용합니다.
메모 :폭이 약 80 픽셀 이내의 이미지를 사용하면, 최선의 결과를 얻을 수 있습니다.
이미지 파일의 이름과 장소는,
url property에 건네주는 값과 일치하고 있을 필요가 있습니다. 예를 들어, 이 예로 url 에게 건네지는 값은
SWF 파일과 같은 디렉토리내에 있는 "Image.jpg" 라는 이름의 이미지 파일을 가리킵니다.
package {
import flash.display.DisplayObject;
import flash.display.Loader;
import flash.display.Sprite;
import flash.events. *;
import flash.filters.BitmapFilter;
import flash.filters.ConvolutionFilter;
import flash.net.URLRequest;
import flash.text.TextField;
import flash.text.TextFieldAutoSize;
public class ConvolutionFilterExample extends Sprite {
private var size:uint = 140;
private var url:String = "Image.jpg";
public function ConvolutionFilterExample() {
buildChild(applyNothing);
buildChild(applyBrightness);
buildChild(applySharpness);
buildChild(applyOutline);
}
private function buildChild(loadHandler:Function) :void {
var loader:Loader = new Loader();
loader.x = numChildren * size;
loader.y = size;
loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
if(loadHandler ! = null) {
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadHandler);
}
var request:URLRequest = new URLRequest(url);
loader.load(request);
addChild(loader);
}
private function applyNothing(event:Event) :void {
var child:DisplayObject = DisplayObject(event.target.loader);
applyLabel(child, "no filter");
}
private function applyBrightness(event:Event) :void {
var child:DisplayObject = DisplayObject(event.target.loader);
var matrix:Array = [5, 5, 5,
5, 0, 5,
5, 5, 5];
applyFilter(child, matrix);
applyLabel(child, "brightness");
}
private function applySharpness(event:Event) :void {
var child:DisplayObject = DisplayObject(event.target.loader);
var matrix:Array = [0, -1, 0,
-1, 20, -1,
0, -1, 0];
applyFilter(child, matrix);
applyLabel(child, "sharpness");
}
private function applyOutline(event:Event) :void {
var child:DisplayObject = DisplayObject(event.target.loader);
var matrix:Array = [-30, 30, 0,
-30, 30, 0,
-30, 30, 0];
applyFilter(child, matrix);
applyLabel(child, "outline");
}
private function applyFilter(child:DisplayObject, matrix:Array) :void {
var matrixX:Number = 3;
var matrixY:Number = 3;
var divisor:Number = 9;
var filter:BitmapFilter = new ConvolutionFilter(matrixX, matrixY, matrix, divisor);
var filters:Array = new Array();
filters.push(filter);
child.filters = filters;
}
private function applyLabel(child:DisplayObject, label:String) :void {
var tf:TextField = new TextField();
tf.x = child.x;
tf.y = child.height;
tf.autoSize = TextFieldAutoSize.LEFT;
tf.text = label;
addChild(tf);
}
private function ioErrorHandler(event:IOErrorEvent) :void {
trace("Unable to load image: " + url);
}
}
}
코멘트가 추가되었을 경우, 메일로 받기. | 코멘트 리포트
현재의 페이지: http://flexdocs.kr/docs/flex2/langref/flash/filters/ConvolutionFilter.html