July 31, 2005

[Delphi] VCL TBitmap Contour2

Contour2

Contour の変種で上下左右との差分を求める。

 0, -1,  0
-1,  4, -1
 0, -1,  0  / 1  + 127

の論理。

コードは  続きを読む

Posted by junki560 at 01:02Comments(0)TrackBack(0)

[Delphi] VCL TBitmap Sharpen

Sharpen

Contour の生データをある割合で原画に重ねると Sharpen フィルタができる。

コードは  続きを読む
Posted by junki560 at 00:46Comments(0)TrackBack(0)

[Delphi] VCL TBitmap Contour

Contour

ここと同じ論理で Contour フィルタを作った。

コードは  続きを読む
Posted by junki560 at 00:22Comments(0)TrackBack(0)

[Delphi] VCL TBitmap ColorDepthReduction

ColorDepthReduction

TBitmapPixelFormatpf24bit であるとき pf8bit に減色することを考える。GDI+ のときとは違って、事実上 Delphi 標準の TGifImage クラスを使うことが出来る。

わたしの使っている GIFImage.pasAnders Melander 氏の ver.2.2 である。これの減色の際に使う量子化には Octree 法を使っている。また、エラー拡散法にはいろいろ指定することが出来る。今回はこれを使って TBitmappf24bit --pf8bit にする手続きを作った。

図は

Original(pf24bit), TBitmap pf24bit --pf8bit
TGifImage (dmNearest), TGifImage(dmFloydSteinberg)
TGifImage (dmStucki), TGifImage(dmSierra)
TGifImage (dmJaJuNI), TGifImage(dmBurkes)

である。それぞれ、エラー拡散法により微妙な相違がある。いろいろな画像に対して試したところ dmBurkes が一番気にいったのでこれをデフォルトにした。

コードは  続きを読む
Posted by junki560 at 00:05Comments(0)TrackBack(0)

July 30, 2005

[Delphi] VCL TBitmap PaletteEntries

PaletteEntries

*.gif ファイルを TBitmap にロードする関数と pf8bit のビットマップのパレットエントリを表示するビットマップを返す関数を作った。

コードは  続きを読む
Posted by junki560 at 00:35Comments(1)TrackBack(0)

[Delphi] VCL TBitmap TwoColorGrayScale

TwoColorGrayScale

パレットの両端の色を設定できる GrayScale を作った。

GDI+LinearGradientBrush が使えないので、自前で線形補完してパレットエントリを作成した。

コードは  続きを読む
Posted by junki560 at 00:10Comments(0)TrackBack(0)

[Delphi] VCL TBitmap Contrast

Contrast

Contrast フィルタを作った。

コードは  続きを読む
Posted by junki560 at 00:05Comments(0)TrackBack(0)

July 29, 2005

[Delphi] VCL TBitmap Birghtness

Brightness

Brightness フィルタを作った。

コードは  続きを読む
Posted by junki560 at 00:56Comments(0)TrackBack(0)

[Delphi] VCL TBitmap BirghtnessHistogram

BrightHisto

輝度のヒストグラムをあらわすビットマップを返す関数を作成した。

コードは  続きを読む
Posted by junki560 at 00:35Comments(0)TrackBack(0)

[Delphi] VCL TBitmap Emboss3

Emboss3

引き続き、ここに相当する Emboss3 フィルタ。

コードは  続きを読む
Posted by junki560 at 00:12Comments(6)TrackBack(0)