2.イメージ加工
イメージ加工として、Curlにはさまざまなフィルタが用意されています。その一部を紹介します。
まずは、“ぼかし”フィルタです。これは、元となるFillPatternにフィルタ加工を行い、フィルタ加工後のFillPatternを用いて描画を行います。ソースコードの太字部分がフィルタ加工処理になります。ここでは、60%の“ぼかし”を行っています。
“ぼかし”の例
{curl 7.0 applet} {import * from CURL.GRAPHICS.IMAGEFILTER} {let src-fp:FillPattern = {FillPattern.from-url {url "curl://install/docs/default/images/adria.jpg"}}} {let blurred-fp:FillPattern = {blur src-fp, || in FillPattern amount=60%, || amount to blur the image out=null} || out FillPattern } {View {Fill width = 2.5in, height = 2.5in, background = blurred-fp }, visibility = "normal", {on WindowClose do {exit} } }
もう1つの例として、RGBの各色値単位に割合指定を行うフィルタです。このフィルタを用いて、色分解を行ったりすることができます。以下の例では、R値を1.5倍、G値・B値を0.5倍しています。
{curl 7.0 applet} {let fp-org:FillPattern = {FillPattern.from-url {url "curl://install/docs/default/images/adria.jpg"}}} {let fp:FillPattern = {IMAGEFILTER.rgb-scale fp-org, red=1.5, green=0.5, blue=0.5 }} {View {HBox {Fill width=1in, height=1in, background=fp-org}, {Fill width=1in, height=1in, background=fp} }, visibility = "normal", {on WindowClose do {exit} } }
提供フィルタ一覧
最後に、提供されているフィルタの一覧をまとめておきます。
autolevel
低照明の矯正
blend
2つのFillPattern を混合
blur
"ぼかし" 効果
brightness-adjust
明度調節
bubble
泡表示
contrast-adjust
コントラスト レベルを調整
emboss
エンボス効果
filter-pixmap
Pixmapにしてイメージ フィルタを実施
glow
"glow" 効果
hsv-adjust
色相、彩度、およびイメージの値 (またはそのうちのどれか) を調整
rgb-channel
赤、緑、青、およびアルファの各チャネルの除外
rgb-offset
赤、緑、青、およびアルファのチャネルに個々に値を付加
rgb-scale
赤、緑、青、およびアルファのチャネルを個々の係数で乗算
rotate
回転
scale
水平方向と垂直方向のスケール変更
skew-height
垂直方向に補正
skew-width
水平方向に補正
sphere丸く歪める
translate
平行移動
twirl
渦巻き
warp
ワープ