ActionScript 3
비트 맵 조작 및 필터링
수색…
소개
이 항목에서는 비트 맵 데이터 및 시각적 처리, 픽셀 작업 및 효과 필터 시작에 대해 조금 배우게됩니다.
임계 값 (단색) 효과
필수 :
- 비트 맵 및 비트 맵 데이터 이해
문턱 값이란?
이 조정은 이미지의 모든 픽셀을 가져 와서 순수한 흰색 또는 순수한 검정색으로 푸시합니다.
우리가해야 할 일
여기 UI를 사용하여 런타임에서 임계 값 레벨 변경과 같은 몇 가지 추가 변경 사항이있는이 예제의 라이브 데모 가 있습니다.
작업 스크립트 3의 임계 값 as3 공식 문서
지정된 임계 값에 대해 이미지의 픽셀 값을 테스트하고 테스트를 통과 한 픽셀을 새 색상 값으로 설정합니다. threshold () 메서드를 사용하면 이미지의 색상 범위를 격리 및 대체하고 이미지 픽셀에 대해 다른 논리 연산을 수행 할 수 있습니다.
threshold () 메소드의 테스트 로직은 다음과 같습니다.
- ((pixelValue & mask) 연산 (threshold & mask)이면 픽셀을 color로 설정하십시오.
- 그렇지 않은 경우, copySource == true의 경우, 픽셀을 sourceBitmap의 대응하는 픽셀 치로 설정합니다.
방금 인용 된 설명과 같이 정확하게 다음 코드를 주석 처리했습니다.
import flash.display.BitmapData;
import flash.display.Bitmap;
import flash.geom.Rectangle;
import flash.geom.Point;
var bmd:BitmapData = new wildcat(); // instantied a bitmapdata from library a wildcat
var bmp:Bitmap = new Bitmap(bmd); // our display object to previewing bitmapdata on stage
addChild(bmp);
monochrome(bmd); // invoking threshold function
/**
@param bmd, input bitmapData that should be monochromed
*/
function monochrome(bmd:BitmapData):void {
var bmd_copy:BitmapData = bmd.clone(); // holding a pure copy of bitmapdata for comparation steps
// this is our "threshold" in description above, source pixels will be compared with this value
var level:uint = 0xFFAAAAAA; // #AARRGGBB. in this case i used RGB(170,170,170) with an alpha of 1. its not median but standard
// A rectangle that defines the area of the source image to use as input.
var rect:Rectangle = new Rectangle(0,0,bmd.width,bmd.height);
// The point within the destination image (the current BitmapData instance) that corresponds to the upper-left corner of the source rectangle.
var dest:Point = new Point();
// thresholding will be done in two section
// the last argument is "mask", which exists in both sides of comparation
// first, modifying pixels which passed comparation and setting them all with "color" white (0xFFFFFFFF)
bmd.bitmapData.threshold(bmd_copy, rect, dest, ">", level, 0xFFFFFFFF, 0xFFFFFFFF);
// then, remaining pixels and make them all with "color" black (0xFF000000)
bmd.bitmapData.threshold(bmd_copy, rect, dest, "<=", level, 0xFF000000, 0xFFFFFFFF);
// Note: as we have no alpha channel in our default BitmapData (pixelValue), we left it to its full value, a white mask (0xffffffff)
}
Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow