Showing posts with label グラデーション. Show all posts
Showing posts with label グラデーション. Show all posts

Sunday, December 19, 2010

PHPとGDでグラデーションのかかった画像に変換する

PHPとGDでグラデーションのかかった画像に変換するには、以下のコードを実行します。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="ja"
xml:lang="ja" dir="ltr">
<head>
<title>gd_test4</title>
</head>
<body>
<?php
// 入力ファイル名
$fn = "sf.jpg";
// 入力ファイルサイズ取得
$bimg = imagecreatefromjpeg($fn);
imagefilter($bimg, IMG_FILTER_GRAYSCALE);
$sx = imagesx($bimg);
$sy = imagesy($bimg);
// グラデーション用画像を作成
$img = imagecreate($sx, $sy);
imagesavealpha($img, true);
imagealphablending($img, false);
// 半透明グラデーションを作成
$c1 = 0xffff10;
$c2 = 0x3070a0;
for($ly=0;$ly<$sy;$ly++){
$r1 = ($c1 >> 16) & 0xff;
$g1 = ($c1 >> 8 ) & 0xff;
$b1 = $c1 & 0xff;
$r2 = ($c2 >> 16) & 0xff;
$g2 = ($c2 >> 8 ) & 0xff;
$b2 = $c2 & 0xff;
$ro = $r1 + round(($r2 - $r1)/$sy*$ly);
$go = $g1 + round(($g2 - $g1)/$sy*$ly);
$bo = $b1 + round(($b2 - $b1)/$sy*$ly);
for($lx=0;$lx<$sx;$lx++){
imagesetpixel($img, $lx, $ly,
imagecolorresolve($img, $ro, $go, $bo));
}
}

// 重ね合わせ
imagecopymerge($bimg, $img, 0, 0, 0, 0, $sx, $sy, 50);

// ファイル出力
imagepng($bimg, "gd_test4.png");
// 開放
imagedestroy($bimg);
imagedestroy($img);
?>
<img src="gd_test4.png" /><br />
</body>
</html>



元画像


出力画像


動作環境
Apache httpd 2.2.17, PHP5.3.3

Thursday, March 04, 2010

Java2DとJava Image Filters(pixels)を使用してグラデーションのかかったモノトーン画像に変換する

Java2DとJava Image Filters(pixels)を使用してグラデーションのかかったモノトーン画像に変換するには、以下のコードを実行します。


import java.awt.*;
import java.awt.image.*;
import java.io.*;
import javax.imageio.*;
import com.jhlabs.composite.*;
import com.jhlabs.image.*;

public class Java2DTest69
{
public static void main(String args[])
throws Exception
{
/* 画像を指定した色のグラデーションのかかったモノトーン画像に変換 */
BufferedImage img = ImageIO.read(new File("sf2.jpg"));
BufferedImage imga = new BufferedImage(
img.getWidth(), img.getHeight(),
BufferedImage.TYPE_INT_ARGB
);
GrayscaleFilter gf = new GrayscaleFilter();
BufferedImage img2 = gf.filter(img, imga);

BufferedImage img3 = new BufferedImage(
img.getWidth(), img.getHeight(),
BufferedImage.TYPE_INT_ARGB
);
GradientFilter grf = new GradientFilter(
new Point(0, 0), new Point(0, img.getHeight()),
0xff3070a0, 0xffffff10,
false, GradientFilter.LINEAR,
GradientFilter.INT_SMOOTH);

BufferedImage img4 = grf.filter(img3, null);

CompositeFilter cf = new CompositeFilter(
MiscComposite.getInstance(MiscComposite.BLEND, 0.5f));

BufferedImage img5 = cf.filter(img2, img4);
ImageIO.write(img5, "png", new File("sample1970a.png"));
}
}


元画像(sf2.jpg)


出力画像(sample1970a.png)


関連項目
Jerry Huxtableさんのホームページ
http://www.jhlabs.com/index.html
Java Image Filtersのページ
http://www.jhlabs.com/ip/filters/
java.net でのプロジェクトページ
https://pixels.dev.java.net/

Wednesday, March 03, 2010

Java2DとJava Image Filters(pixels)を使用して円錐グラデーションを描画する

Java2DとJava Image Filters(pixels)を使用して円錐グラデーションを描画するには、以下のコードを実行します。


import java.awt.*;
import java.awt.image.*;
import java.io.*;
import javax.imageio.*;
import com.jhlabs.composite.*;
import com.jhlabs.image.*;

public class Java2DTest67
{
public static void main(String args[])
throws Exception
{
/* 円錐グラデーション画像を作成する */
BufferedImage img = new BufferedImage(
300, 300,
BufferedImage.TYPE_INT_ARGB
);
GradientFilter ff = new GradientFilter(
new Point(150, 150), new Point(300, 300),
0xff7799dd, 0xffffffff,
false, GradientFilter.BICONICAL,
GradientFilter.INT_SMOOTH);

BufferedImage img2 = ff.filter(img, null);
ImageIO.write(img2, "png", new File("sample1968a.png"));
}
}


出力画像(sample1968a.png)
Java2DとJava Image Filtersを使用して描画した円錐グラデーション

関連項目
Jerry Huxtableさんのホームページ
http://www.jhlabs.com/index.html
Java Image Filtersのページ
http://www.jhlabs.com/ip/filters/
java.net でのプロジェクトページ
https://pixels.dev.java.net/

Tuesday, March 02, 2010

Java2DとJava Image Filters(pixels)を使用して放射グラデーションを描画する

Java2DとJava Image Filters(pixels)を使用して放射グラデーションを描画するには、以下のコードを実行します。


import java.awt.*;
import java.awt.image.*;
import java.io.*;
import javax.imageio.*;
import com.jhlabs.composite.*;
import com.jhlabs.image.*;

public class Java2DTest66
{
public static void main(String args[])
throws Exception
{
/* 放射グラデーション画像を作成する */
BufferedImage img = new BufferedImage(
300, 300,
BufferedImage.TYPE_INT_ARGB
);
GradientFilter ff = new GradientFilter(
new Point(100, 100), new Point(200, 100),
0xff7799dd, 0xffffffff,
false, GradientFilter.RADIAL,
GradientFilter.INT_SMOOTH);

BufferedImage img2 = ff.filter(img, null);
ImageIO.write(img2, "png", new File("sample1967a.png"));
}
}


出力画像(sample1967a.png)
Java2DとJava Image Filtersを使用して描画した放射グラデーション

関連項目
Jerry Huxtableさんのホームページ
http://www.jhlabs.com/index.html
Java Image Filtersのページ
http://www.jhlabs.com/ip/filters/
java.net でのプロジェクトページ
https://pixels.dev.java.net/

Monday, March 01, 2010

Java2DとJava Image Filters(pixels)を使用してグラデーション画像を作成する

Java2DとJava Image Filters(pixels)を使用してグラデーション画像を作成するには、以下のコードを実行します。


import java.awt.*;
import java.awt.image.*;
import java.io.*;
import javax.imageio.*;
import com.jhlabs.composite.*;
import com.jhlabs.image.*;

public class Java2DTest65
{
public static void main(String args[])
throws Exception
{
/* グラデーション画像を作成する */
BufferedImage img = new BufferedImage(
300, 300,
BufferedImage.TYPE_INT_ARGB
);
GradientFilter ff = new GradientFilter(
new Point(0, 0), new Point(200, 100),
0xff7799dd, 0xffffffff,
false, GradientFilter.LINEAR,
GradientFilter.INT_SMOOTH);

BufferedImage img2 = ff.filter(img, null);
ImageIO.write(img2, "png", new File("sample1966a.png"));
}
}


出力画像(sample1966a.png)


関連項目
Jerry Huxtableさんのホームページ
http://www.jhlabs.com/index.html
Java Image Filtersのページ
http://www.jhlabs.com/ip/filters/
java.net でのプロジェクトページ
https://pixels.dev.java.net/

Saturday, February 20, 2010

Java2DとJava Image Filters(pixels)を使用して四角グラデーションを描画する

Java2DとJava Image Filters(pixels)を使用して四角グラデーションを描画するには、以下のコードを実行します。


import java.awt.*;
import java.awt.image.*;
import java.io.*;
import javax.imageio.*;
import com.jhlabs.composite.*;
import com.jhlabs.image.*;

public class Java2DTest68
{
public static void main(String args[])
throws Exception
{
/* 四角グラデーション画像を作成する */
BufferedImage img = new BufferedImage(
300, 300,
BufferedImage.TYPE_INT_ARGB
);
GradientFilter ff = new GradientFilter(
new Point(150, 150), new Point(300, 300),
0xff7799dd, 0xffffffff,
false, GradientFilter.SQUARE,
GradientFilter.INT_SMOOTH);

BufferedImage img2 = ff.filter(img, null);
ImageIO.write(img2, "png", new File("sample1969a.png"));
}
}


出力画像(sample1969a.png)
Java2DとJava Image Filtersを使用して描画した四角グラデーション

関連項目
Jerry Huxtableさんのホームページ
http://www.jhlabs.com/index.html
Java Image Filtersのページ
http://www.jhlabs.com/ip/filters/
java.net でのプロジェクトページ
https://pixels.dev.java.net/

Monday, July 27, 2009

ImageMagickとPHPでグラデーションのかかったストライプを描画する

Imagickでグラデーションのかかったストライプを描画するには、以下のコードを実行します。


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="ja"
xml:lang="ja" dir="ltr">
<head>
<title>sample1139(ImageMagick6.5.2)</title>
</head>
<body>
<?php
/* 画像サイズ */
$sx=200;
$sy=200;
/* ストライプ数 */
$rays=16;
$sr=360/$rays;
/* 背景色 */
$bc="#f0f0f0";
/* ストライプ色 */
$sc1="#99bbff";
$sc2="orange";

$cx=$sx/2;
$cy=$sy/2;

$im = new Imagick();
$im->newImage($sx, $sy, "none");
//$im->setImageMatte(true);
$idraw = new ImagickDraw();
$idraw->setFillColor("white");
for($lc=0;$lc<$rays;$lc++){
$points[] = array(
'x' => $cx, 'y' => $cy);
$points[] = array(
'x' => $cx+cos(pi()*$sr*$lc/180)*$sx,
'y' => $cy+sin(pi()*$sr*$lc/180)*$sy);
$points[] = array(
'x' => $cx+cos(pi()*($sr*$lc+$sr/2)/180)*$sx,
'y' => $cy+sin(pi()*($sr*$lc+$sr/2)/180)*$sy);
$idraw->polygon($points);
}
$im->drawImage($idraw);
$im2 = new Imagick();
$im2->newPseudoImage($sx, $sy,
"radial-gradient:" . $sc1 . "-" . $sc2);
$im2->setImageMatte(true);

$im2->compositeImage($im, Imagick::COMPOSITE_DSTIN,
0, 0, Imagick::CHANNEL_ALL);

$im3 = new Imagick();
$im3->newImage($sx, $sy, $bc);
$im3->compositeImage($im2, Imagick::COMPOSITE_OVER,
0, 0, Imagick::CHANNEL_ALL);


$im3->writeImage('sample1139a.png');
$idraw->destroy();
$im3->destroy();
$im2->destroy();
$im->destroy();
?>
<img src="sample1139a.png" /><br />

</body>
</html>


出力画像(sample1139a.png)
Imagickで描画したグラデーションのかかったストライプ

Saturday, July 18, 2009

groovyでグラデーションの放射ストライプを描画する

groovyでグラデーションの放射ストライプを描画するには、以下のコードを実行します。


import groovy.swing.j2d.*

def gr = new GraphicsRenderer()
gr.renderToFile("sample1141a.png", 200, 200){
antialias("on")
background(color: color("white"))
rays(cx:90, cy:110, radius:200, rays:32,
borderColor:no){
radialGradient( cx: 90, cy: 110, radius:150){
stop(offset: 0, color: "#7799ff")
stop(offset: 1, color: "orange")
}
}
}


出力画像(sample1141a.png)
groovyで描画したグラデーションの放射ストライプ

Wednesday, July 15, 2009

ImageMagickとPHPで抽象的なグラデーション画像に変換する

Imagickで抽象的なグラデーション画像に変換するには、以下のコードを実行します。


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="ja"
xml:lang="ja" dir="ltr">
<head>
<title>sample1133(ImageMagick6.5.2)</title>
</head>
<body>
<?php
$im = new Imagick("sf.jpg");
//$im->setImageColorspace(Imagick::COLORSPACE_GRAY);
$im->medianFilterImage(1.5);
$im->quantizeImage(8, Imagick::COLORSPACE_GRAY, 0, FALSE , false);
$im2 = new Imagick();
$im2->newPseudoImage(1, 2, 'gradient:#803010ff-#ffffffff');
/* 任意の2色に変換 */
$im->addImage($im2);
$im->setImageIndex(0);
$im3 = $im->fxImage("v.p{0,(r+g+b)/3}");
$im3->writeImage('sample1133a.png');

$im3->destroy();
$im2->destroy();
$im->destroy();
?>
<img src="sample1133a.png" /><br />

</body>
</html>


元画像(sf.jpg)


出力画像(sample1133a.png)
Imagickで変換した抽象的なグラデーション画像

Monday, July 13, 2009

ImageMagickとPHPで背景がぼやける半透明グラデーションを描画する

Imagickで背景がぼやける半透明グラデーションを描画するには、以下のコードを実行します。


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="ja"
xml:lang="ja" dir="ltr">
<head>
<title>sample1132(ImageMagick6.5.2)</title>
</head>
<body>
<?php
$hpad = 20;
$im = new Imagick("sf.jpg");
$iw = $im->getImageWidth();
$ih = $im->getImageWidth();
$im2 = $im->clone();
$im2->cropImage($iw-$hpad*2, $ih, $hpad, 0);
$im2->blurImage(0, 5);
$im3 = new Imagick();
$im3->newPseudoImage($iw-$hpad*2, $ih,
"gradient:#00000010-#00000070");
$im2->compositeImage($im3, Imagick::COMPOSITE_OVER,
0, 0, Imagick::CHANNEL_ALL);

$im->compositeImage($im2, Imagick::COMPOSITE_OVER,
$hpad, 0, Imagick::CHANNEL_ALL);
$im->writeImage('sample1132a.png');

$im->destroy();
?>
<img src="sample1132a.png" /><br />

</body>
</html>


元画像(sf.jpg)


出力画像(sample1132a.png)
Imagickで背景がぼやける半透明グラデーションを描画した画像

Friday, June 19, 2009

groovyで任意の2色のグラデーションでバースト状に塗りつぶす

groovyで任意の2色のグラデーションでバースト状に塗りつぶすには、以下のコードを実行します。


import groovy.swing.j2d.*
import com.jhlabs.image.*

def gr = new GraphicsRenderer()
gr.renderToFile("sample994a.png", 200, 200){
antialias("on")
dolphinShape( x:0, y:20, width:200, height:160,
fill:color("#ffffff"), borderColor:no ){
filters {
lc = new LinearColormap((int)0xFF3070A0, (int)0xFFFFFFFF)
shapeBurst(colormap: lc)
}
}
}


出力画像(sample994a.png)
groovyで任意の2色のバースト状グラデーションで塗りつぶした画像

動作環境
Groovy1.6.0, JDK1.6 Update12

関連項目
groovyでバースト状にシェイプを塗りつぶす
groovyで図形をグラデーションで塗りつぶす
groovyでストロークにグラデーションをかける
groovyで図形を虹色グラデーションで塗りつぶす

Sunday, June 07, 2009

ImageMagickとPHPで放射グラデーションを描画する

Imagickで放射グラデーションを描画するには、以下のコードを実行します。


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="ja"
xml:lang="ja" dir="ltr">
<head>
<title>sample1109(ImageMagick6.5.2)</title>
</head>
<body>
<?php
$im = new Imagick();
$im->newPseudoImage(200, 200, "radial-gradient:#7799ff-#ffffff");
$im->writeImage('sample1109a.png');
$im->destroy();
?>
<img src="sample1109a.png" /><br />

</body>
</html>


出力画像(sample1109a.png)
Imagickで描画した放射グラデーション

関連項目
ImageMagickで放射グラデーションを描画する (convertコマンドによる同様の処理)

Saturday, June 06, 2009

RMagickで放射グラデーションを描画する

RMagickで放射グラデーションを描画するには、以下のコードを実行します。


require 'RMagick'
include Magick

# env: ruby1.8.6, rmagick2.9.0

images = ImageList.new()
images.read("radial-gradient:#7799ff-#ffffff"){
self.size = "200x200"
}
images.write("sample1123a.png")

exit


出力画像(sample1123a.png)
RMagickで描画した放射グラデーション

動作環境
ruby1.8.6, rmagick2.9.0

関連項目
RMagickで虹色グラデーションの文字列を描画する
Rmagickで画像を木炭画調に変換してグラデーションを適用する

Friday, June 05, 2009

SVGRendererでストロークにグラデーションをかける

SVGRendererでストロークにグラデーションをかけるには、以下のコードを実行します。


import groovy.swing.j2d.svg.*

gr = new SVGRenderer()
gr.renderToFile("sample980a.svg", 200, 200){
rect( x:10, y:10, width:180, height:180,
arcWidth: 20, arcHeight:20,
fill: color("#fffff0"),
borderWidth: 6
){
borderPaint(){
gradientPaint( x1: 0, y1: 0, x2: 0, y2: 200,
color1: "#ffffe0", color2: "#f0d090")
}
}
}


出力SVG(sample980a.svg)をPNGにレンダリングした画像
SVGRendererでストロークにグラデーションをかけた画像

動作環境
Groovy1.6.0, JDK1.6 Update12

関連項目
SVGRendererでグラデーションのかかった星を描画する (グラデーションで塗りつぶす場合はこちら)
groovyでストロークにグラデーションをかける (GraphicsRendererでの同様の処理)

Thursday, June 04, 2009

SVGRendererでグラデーションのかかった星を描画する

SVGRendererでグラデーションのかかった星を描画するには、以下のコードを実行します。


import groovy.swing.j2d.svg.*

gr = new SVGRenderer()
gr.renderToFile("sample979a.svg", 200, 200){
star( cx:100, cy:100, count:5, ir:40, or:90,
borderColor: color("#d0b070"),
borderWidth: 2
){
gradientPaint( x1: 0, y1: 0, x2: 0, y2: 200,
color1: "#ffffe0", color2: "#f0d090")
}
}


出力SVG(sample979a.svg)をPNGにレンダリングした画像
SVGRendererで描画したスター

動作環境
Groovy1.6.0, JDK1.6 Update12

関連項目
groovyで図形をグラデーションで塗りつぶす (GraphicsRendererでの同様の処理)

Thursday, May 21, 2009

ImageMagickとPHPでバンド状グラデーションの文字列を描画する

Imagickでバンド状グラデーションの文字列を描画するには、以下のコードを実行します。


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="ja" xml:lang="ja" dir="ltr">
<head>
<title>sample1095(ImageMagick6.5.2)</title>
</head>
<body>
<?php
$im = new Imagick();
$im->newImage(300, 50, 'none');
$im->setImageMatte(true);
$idraw = new ImagickDraw();
$idraw->setFillColor('#ffffff');
/* フォント設定 */
$idraw->setFont('Arial');
/* フォントサイズ設定 */
$idraw->setFontSize(43);
/* gravity設定 */
$idraw->setGravity(Imagick::GRAVITY_NORTH);
/* antialiasをoff*/
$idraw->setStrokeAntialias(false);
/* 文字列描画 */
$idraw->annotation(0, 0, "ImageMagick");
$im->drawImage($idraw);

$im2 = new Imagick();
$im2->newPseudoImage(1, 6, 'gradient:#3070A0FF-#FFFF10FF');
$im2->resizeImage(300,50,Imagick::FILTER_POINT,1);
$im->compositeImage($im2, Imagick::COMPOSITE_IN, 0, 0,
Imagick::CHANNEL_ALL);

$im->writeImage('sample1095a.png');
$im2->destroy();
$idraw->destroy();
$im->destroy();
?>
<img src="sample1095a.png" />
</body>
</html>


出力画像(sample1095a.png)
Imagickでバンド状グラデーションで描画した文字列

関連項目
ImageMagickとPHPで、円形のドットの文字列を描画する
ImageMagickとPHPで、文字列の影に横線を入れる
ImageMagickとPHPで画像上に描画した文字列以外の部分をグレースケールにする
ImageMagickとPHPで青白く輝く文字列を描画する
ImageMagickとPHPでドット文字列を描画する

Monday, May 18, 2009

ImageMagickとPHPで回転させたグラデーションを描画する

Imagickで回転させたグラデーションを描画するには、以下のコードを実行します。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="ja" xml:lang="ja" dir="ltr">
<head>
<title>sample1094(ImageMagick6.5.2)</title>
</head>
<body>
<?php
$im = new Imagick();
$im->newPseudoImage(200, 200, "gradient:#bbddffff-#ffffffff");
$im->setImageMatte(true);
$points = array(45);
//$im->distortImage(Imagick::DISTORTION_SCALEROTATETRANSLATE, $points, false);
// ScaleRotateTranslateDistortion in distort.h
$im->distortImage(3, $points, false);
$im->writeImage('sample1094a.png');
$im->destroy();
?>
<img src="sample1094a.png" />
</body>
</html>

出力画像(sample1094a.png)
Imagickで描画した回転させたグラデーション

Monday, May 04, 2009

ScriptomとImageMagickで画像と半透明グラデーションを重ねる

ScriptomとImageMagickで画像と半透明グラデーションを重ねるには、以下のコードを実行します。

import org.codehaus.groovy.scriptom.*

Scriptom.inApartment
{
im = new ActiveXObject("ImageMagickObject.MagickImage.1")
width = im.identify("-format", "%w", "sf2.jpg")
height = im.identify("-format", "%h", "sf2.jpg")
im.convert("sf2.jpg", "-size", "${width}x${height}",
"gradient:#ffffffff-#00000000",
"-composite", "sample1074a.png")
}

元画像(sf2.jpg)


出力画像(sample1074a.png)



動作環境
Groovy1.6.0, JDK1.6 Update12, ImageMagick6.5.0, Microsoft VC++ 2008 Redistributable
※ImageMagickインストール時にCOMインターフェイスも入れておくこと。

関連項目
ImageMagickで霧がかかったような効果

Tuesday, April 14, 2009

ImageMagickとPHPで斜線グラデーション画像を生成する

Imagickで斜線グラデーション画像を生成するには、以下のコードを実行します。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="ja" xml:lang="ja" dir="ltr">
<head>
<title>sample927(ImageMagick6.4.8)</title>
</head>
<body>
<?php
/* 斜線グラデーションの背景を作成する */
/* 画像サイズ */
$width = 300;
$height = 20;
/* 斜線の距離 */
$dl = 5;
/* 明るさ */
$br = 0.6;

$im = new Imagick();
$im->newImage($width, $height, "black");

$im2 = $im->fxImage("(i+j)%" .
$dl . "==0?0:(sin(pi*i/w))*" . $br);
$im2->writeImage('sample927a.png');

$im2->destroy();
$im->destroy();
?>
<img src="sample927a.png" /><br />

</body>
</html>

出力画像(sample927a.png)


関連項目
ImageMagickで斜線グラデーションの背景画像を生成する

Sunday, April 12, 2009

groovyで4点グラデーションを描画する

groovyで4点グラデーションを描画するには、以下のコードを実行します。


import javax.imageio.*;
import groovy.swing.j2d.*

w=200
h=200
gr = new GraphicsRenderer()
gr.renderToFile("sample1010a.png", w, h){
antialias 'on'
rect( x: 0, y: 0, width: w, height: h,
borderColor: no){
filters {
fourColorFill(
colorNE: 'red',
colorNW: 'yellow',
colorSE: 'green',
colorSW: 'blue')
}
}
}


出力画像(sample1010a.png)
groovyで描画した4点グラデーション

動作環境
Groovy1.6.0, JDK1.6 Update12

関連項目
groovyで図形を放射グラデーションで塗りつぶす
groovyで図形を虹色グラデーションで塗りつぶす
groovyでストロークにグラデーションをかける
groovyで図形をグラデーションで塗りつぶす