# ImageFilterモジュール

## 概要

ImageFilterモジュールは、jgame.jsにおける画像フィルタを実現するための複数のクラスで構成されるモジュール群です。

## インターフェース

### IFilter

#### filter(pixels:ImageData)

IFilterはフィルタ実行を可能とするオブジェクトであることを示す便宜上のインターフェースです。

## クラス

### FilterChain

#### filters:Filter[]

#### constructor()

#### get(index:number):Filter

#### add(filter:Filter):FilterChain

#### set(filter:Filter):FilterChain

#### insert(index:number, filter:Filter):FilterChain

#### remove(filter:Filter)

#### clear():FilterChain

#### count():number

#### has():bool

#### createSprite(entity:E):Sprite

#### createImage(entity:Sprite):HTMLCanvasElement

#### filter(pixels:ImageData)

FilterChainは、複数のフィルタを管理するコレクションクラスです。

### Filter

#### opt:any

#### width:number

#### height:number

#### constructor()

#### filter(pixels:ImageData)

#### getOption(name:string, defaultValue?:any):any

#### findColorDifference(dif:number, dest:number, src:number):number

#### createColor(src:string):string

#### applyMatrix(pixels:ImageData, matrix:number[], amount:number)

#### checkRGBBoundary(val:number)

Filterは、すべてのフィルタのベースクラスです。

このクラス単体ではフィルタ効果はありません。

### GreyscaleFilter

#### constructor(opacity?:number)

#### filter(pixels:ImageData)

グレースケールを表現するフィルタです。

### SepiaFilter

#### constructor(opacity?:number)

#### filter(pixels:ImageData)

セピア色を表現するフィルタです。

### TintFilter

#### constructor(color?:string, opacity?:number)

#### filter(pixels:ImageData)

色変えを行うフィルタです。colorで対象の色を指定出来ます。

この色はグラデーションなどは指定できず、必ず#xxxまたは#xxxxxxの形式で指定する必要があります。

### EdgesFilter

#### constructor(amount?:number)

#### filter(pixels:ImageData)

エッジ処理を行うフィルタです。

### EmbossFilter

#### constructor(amount?:number)

#### filter(pixels:ImageData)

エンボス処理を行うフィルタです。

### SharpenFilter

#### constructor(amount?:number)

#### filter(pixels:ImageData)

シャープ処理を行うフィルタです。

### MatrixFilter

#### constructor(amount?:number, matrix?:number[])

#### filter(pixels:ImageData)

任意のマトリックス処理を行うフィルタです。

### BlurFilter

#### constructor(amount?:number)

#### filter(pixels:ImageData)

Blur処理を行うフィルタです。

### MosaicFilter

#### constructor(size?:number, opacity?:number)

#### filter(pixels:ImageData)

モザイク処理を行うフィルタです。sizeを大きくするとモザイクが大きくなります。

### NoiseType

#### Mono

#### Color

ノイズの種類をあらわすenum型です。

### NoiseFilter

#### constructor(amount?:number, type?:NoiseType)

#### filter(pixels:ImageData)

ノイズ処理を行うフィルタです。デフォルトはグレースケールのノイズです。

### PosterizeFilter

#### constructor(amount?:number, opacity?:number)

#### filter(pixels:ImageData)

ポスタライズ処理を行うフィルタです。