サーチ…


前書き

このトピックでは、ビットマップデータの処理とビジュアル処理、ピクセルの操作、エフェクトフィルタの使用について説明します。

閾値(モノクロ)効果


必須:

  1. ビットマップとビットマップのデータを理解する

しきい値は何ですか

この調整は、画像内のすべてのピクセルを取り、純粋な白または純粋な黒にプッシュします

私たちがしなければならないこと

ここでは、UIを使用して実行時にしきい値レベルを変更するなど、いくつかの追加変更が加えられたこのサンプルのライブデモを示します。

ここに画像の説明を入力

アクションスクリプト3のしきい値は as3の公式ドキュメントから

イメージのピクセル値を指定されたしきい値と比較してテストし、テストに合格したピクセルを新しいカラー値に設定します。 threshold()メソッドを使用すると、イメージ内のカラー範囲を分離して置換し、イメージピクセルに対して他の論理演算を実行できます。

threshold()メソッドのテストロジックは次のとおりです。

  1. ((pixelValue&mask)operation(threshold&mask)の場合は、ピクセルをcolorに設定します。
  2. それ以外の場合は、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