ColorMatrixFilter 클래스를 이용하여 입력 이미지의 각 픽셀의 RGBA 색상 및 알파 값에 4 x 5 행렬 변환을 적용해서 새로운 세트의 RGBA 색상 및 알파 값 결과를 얻습니다. ColorMatrixFilter 클래스를 이용하여 알파 및 기타 다양한 효과에 채도 변경, 색조 회전, 광도를 활용할 수 있습니다. 이 필터를 비트맵과 MovieClip 인스턴스에 적용할 수 있습니다.
필터 사용은 필터를 적용할 객체에 따라 달라집니다.
- 런타임에 필터를 무비 클립에 적용하려면 filters 속성을 사용합니다. 객체의 filters 속성을 설정해도 객체는 수정되지 않으며, filters 속성을 지워 실행 취소할 수 있습니다.
- BitmapData 인스턴스에 필터를 적용하려면 BitmapData.applyFilter() 메서드를 사용합니다. BitmapData 객체에 대해 applyFilter()를 호출하면 소스 BitmapData 객체와 필터 객체를 통해 필터링된 이미지가 만들어집니다.
제작 시 이미지와 비디오에 필터 효과를 적용할 수도 있습니다. 자세한 내용은 제작 설명서를 참조하십시오.
무비 클립 또는 버튼에 필터를 적용하는 경우 무비 클립이나 버튼의 cacheAsBitmap 속성이 true로 설정됩니다. 모든 필터를 지우면 cacheAsBitmap의 원래 값이 복원됩니다.
다음 공식이 사용됩니다. 여기서 a[0]부터 a[19]는 20개의 요소로 이루어진 배열 속성 행렬의 항목 0부터 19에 해당합니다.
redResult = a[0] * srcR + a[1] * srcG + a[2] * srcB + a[3] * srcA + a[4]greenResult = a[5] * srcR + a[6] * srcG + a[7] * srcB + a[8] * srcA + a[9]blueResult = a[10] * srcR + a[11] * srcG + a[12] * srcB + a[13] * srcA + a[14]alphaResult = a[15] * srcR + a[16] * srcG + a[17] * srcB + a[18] * srcA + a[19]
이 필터는 각 소스 픽셀을 빨강(srcR), 녹색(srcG), 파랑(srcB) 및 알파(srcA) 요소로 분리합니다. 마지막으로 이 필터는 각 색상 요소를 다시 단일 픽셀로 결합하고 그 결과를 기록합니다.
연산은 곱하지 않은 색상값에 실행됩니다. 입력 그래픽이 미리 곱해진 색상 값으로 구성된 경우 이러한 값은 이 연산을 위해 자동으로 곱해지지 않은 색상 값으로 변환됩니다.
다음과 같은 두 개의 최적화된 모드를 사용할 수 있습니다.
알파에만 적용.다음과 같이 알파 요소만 조절하는 행렬을 필터에 전달하면 필터 성능이 최적화됩니다.
1 0 0 0 00 1 0 0 00 0 1 0 00 0 0 N 0 (where N is between 0.0 and 1.0)
(example)적청반전
var filterObj = new flash.filters.ColorMatrixFilter();
filterObj.matrix = new Array(
0,0,1,0,0,
0,1,0,0,0,
1,0,0,0,0,
0,0,0,1,0);
mc.filters = [filterObj];
//
흑백
var filterObj = new flash.filters.ColorMatrixFilter();
filterObj.matrix = new Array(
1/3,1/3,1/3,0,0,
1/3,1/3,1/3,0,0,
1/3,1/3,1/3,0,0,
0, 0, 0,1,0);
mc.filters = [filterObj];
//
세피아
var filterObj = new flash.filters.ColorMatrixFilter();
filterObj.matrix = new Array(
1/2,1/2,1/2,0,0,
1/3,1/3,1/3,0,0,
1/4,1/4,1/4,0,0,
0, 0, 0,1,0);
mc.filters = [filterObj];
펼쳐두기..
댓글 없음:
댓글 쓰기