Saturday, January 03, 2009

groovyで画像をシャープにする

groovyで画像をシャープにするには、以下のコードを実行します。


import groovy.swing.j2d.*

def gr = new GraphicsRenderer()
gr.renderToFile("sample854a.png", 200, 200){
antialias("on")
rect( x: 0, y: 0, width: 200, height: 200,
borderColor: no){
texturePaint(x: 0, y: 0, file: 'sf.jpg' )
filters {
unsharp(radius:3)
}
}
}


元画像(sf.jpg)


出力画像(sample854a.png)
groovyでシャープにした画像

動作環境
Groovy1.6.0 Beta2, JDK1.6 Update11

関連項目
groovyで画像をシャープにする - その2
groovyで画像に放射ブラーをかける
groovyで画像に水面の波紋のような効果をかける
groovyで画像に編み目模様をつける

groovyで十字形を描画する

groovyで十字形を描画するには、以下のコードを実行します。


import groovy.swing.j2d.*

def gr = new GraphicsRenderer()
gr.renderToFile("sample790a.png", 200, 200){
antialias("on")
cross( cx: 100, cy: 100, width:20, radius:50,
fill: color("#bbddff"),
borderColor: color("#103080"),
borderWidth: 2
)
}


出力画像(sample790a.png)
groovyで描画した十字形

動作環境
Groovy1.6.0 Beta2, JDK1.6 Update11

関連項目
groovyで蝶を描画する
groovyで吹き出し画像を描画する
groovyでイルカの形を描画する

RMagickでビルトインパターンの背景画像を作成する

RMagickでビルトインパターンの背景画像を作成するには、以下のコードを実行します。

require 'RMagick'
include Magick

img = Image.read("pattern:RIGHTSHINGLE"){
self.size = "150x150"
}

img[0].write("sample721a.png")

exit

出力画像(sample721a.png)


動作環境
ruby1.8.6-26/RMagick-2.3.0-ImageMagick-6.4.0-2-Q8

Friday, January 02, 2009

groovyで画像に水面の波紋のような効果をかける

groovyで画像に水面の波紋のような効果をかけるには、以下のコードを実行します。


import groovy.swing.j2d.*

def gr = new GraphicsRenderer()
gr.renderToFile("sample853a.png", 200, 200){
antialias("on")
rect( x: 0, y: 0, width: 200, height: 200,
borderColor: no){
texturePaint(x: 0, y: 0, file: 'sf.jpg' )
filters {
water(cx:0.6, cy:0.6, radius:100, wavelength:20, amplitude:4)
}
}
}


元画像(sf.jpg)


出力画像(sample853a.png)
groovyで水面の波紋のような効果をかけた画像

動作環境
Groovy1.6.0 Beta2, JDK1.6 Update11

関連項目
Java2DとJava Image Filters(pixels)を使用して水面の波紋のような効果を処理する (Javaでの同様の処理)
groovyで画像に放射ブラーをかける
groovyで画像に編み目模様をつける

groovyで円を描画する

groovyで円を描画するには、以下のコードを実行します。


import groovy.swing.j2d.*

def gr = new GraphicsRenderer()
gr.renderToFile("sample789a.png", 200, 200){
antialias("on")
circle( cx: 100, cy: 100, radius:80,
fill: color("#bbddff"),
borderColor: color("#103080"),
borderWidth: 2
)
}


出力画像(sample789a.png)


動作環境
Groovy1.6.0 Beta2, JDK1.6 Update11

Java2Dで画像をセピア調に変換する

Java2Dで画像をセピア調に変換するには、以下のコードを実行します。


import java.awt.*;
import java.awt.geom.*;
import java.awt.image.*;
import java.io.*;
import java.util.*;
import javax.imageio.*;

public class Java2DTest20
{
public static void main(String args[])
throws Exception
{
/* 画像をセピア調に変換する */
BufferedImage img = ImageIO.read(new File("sf.jpg"));
WritableRaster wr = img.getRaster();
int buf[] = new int[wr.getNumDataElements()];

for(int ly=0;ly<wr.getHeight();ly++){
for(int lx=0;lx<wr.getWidth();lx++){
wr.getPixel(lx, ly, buf);

int maxval = Math.max(Math.max(buf[0], buf[1]), buf[2]);
int minval = Math.min(Math.min(buf[0], buf[1]), buf[2]);
int val = (maxval+minval)/2;
buf[0] = val * 0xd0/0xff;
buf[1] = val * 0xa0/0xff;
buf[2] = val * 0x50/0xff;

wr.setPixel(lx, ly, buf);
}
}
ImageIO.write(img, "jpg", new File("sample744a.jpg"));
}
}


元画像(sf.jpg)


出力画像(sample744a.jpg)

Thursday, January 01, 2009

groovyで画像に編み目模様をつける

groovyで画像に編み目模様をつけるには、以下のコードを実行します。

import groovy.swing.j2d.*

def gr = new GraphicsRenderer()
gr.renderToFile("sample852a.png", 200, 200){
antialias("on")
rect( x: 0, y: 0, width: 200, height: 200,
borderColor: no){
texturePaint(x: 0, y: 0, file: 'sf.jpg' )
filters {
weave(xWidth:12, yWidth:12, xGap:4, yGap:4)
}
}
}


出力画像(sample852a.png)


動作環境
Groovy1.6.0 Beta2, JDK1.6 Update11

関連項目
groovyで画像を2値化する
groovyで画像をシャープにする
groovyで画像に水面の波紋のような効果をかける
groovyで画像に編み目模様をつける
groovyで画像に放射ブラーをかける

groovyで蝶を描画する

groovyで蝶を描画するには、以下のコードを実行します。


import groovy.swing.j2d.*

def gr = new GraphicsRenderer()
gr.renderToFile("sample788a.png", 200, 200){
antialias("on")
butterflyShape( x: 0, y: 0, width: 200, height: 200,
fill: color("#bbddff"),
borderColor: color("#103080"),
borderWidth: 2
)
}


出力画像(sample788a.png)
groovyで描画した蝶

動作環境
Groovy1.6.0 Beta2, JDK1.6 Update11

関連項目
groovyでイルカの形を描画する
SVGRendererで蝶を描画する (SVGRendererによるSVG出力)

ImageMagickとPHPで半透明の吹き出しを描画する

ImageMagickとPHPで半透明の吹き出しを描画するには、以下のコードを実行します。

<!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>sample733(ImageMagick6.4.4)</title>
</head>
<body>
<?php
/* 半透明の吹き出しを描画する */
$im = new Imagick('sf.jpg');

$idraw = new ImagickDraw();
/* 塗りつぶし色設定 */
$idraw->setFillColor('#00000050');
$idraw->roundrectangle(40,50, 160,80, 10,10);
$points[] = array('x' => 100, 'y' => 81);
$points[] = array('x' => 100, 'y' => 91);
$points[] = array('x' => 110, 'y' => 81);
$idraw->polygon($points);
$im->drawImage($idraw);
/* フォント設定 */
$idraw->setFont('Tahoma');
/* フォントサイズ設定 */
$idraw->setFontSize(15);
/* 塗りつぶし色設定 */
$idraw->setFillColor('#ffffffd0');
$im->annotateImage($idraw, 55, 70, 0, "San Francisco");

$im->writeImage('sample733a.png');

$idraw->clear();
$idraw->destroy();
$im->clear();
$im->destroy();
?>
<img src="sample733a.png" />

</body>
</html>

元画像(sf.jpg)


出力画像(sample733a.png)

Wednesday, December 31, 2008

groovyで画像に放射ブラーをかける

groovyで画像に放射ブラーをかけるには、以下のコードを実行します。

import groovy.swing.j2d.*

def gr = new GraphicsRenderer()
gr.renderToFile("sample851a.png", 300, 225){
antialias("on")
rect( x: 0, y: 0, width: 300, height: 225,
borderColor: no){
texturePaint(x: 0, y: 0, file: 'sf2.jpg' )
filters {
motionBlur(angle:0, distance:1.0,
rotation:0, zoom:0.1, wrapEdges:false)
}
}
}


元画像(sf.jpg)


出力画像(sample851a.png)


動作環境
Groovy1.6.0 Beta2, JDK1.6 Update11

関連項目
Java2DとJava Image Filters(pixels)を使用して放射ブラーをかける

groovyで吹き出し画像を描画する

groovyで吹き出し画像を描画するには、以下のコードを実行します。

import groovy.swing.j2d.*

def gr = new GraphicsRenderer()
gr.renderToFile("sample787a.png", 200, 200){
antialias("on")
balloon( x: 80, y: 20, width: 100, height: 100,
fill: color("#bbddff"),
tabLocation: "left",
tabDisplacement: 0.8,
tabHeight: 10,
tabWidth: 10,
borderColor: color("#103080"),
borderWidth: 2
)
}


出力画像(sample787a.png)
groovyで描画した吹き出し画像

動作環境
Groovy1.6.0 Beta2, JDK1.6 Update11

関連項目
SVGRendererで吹き出しを描画する (SVGRendererで描画した吹き出し)

RMagickでプラズマフラクタル画像を生成する

RMagickでプラズマフラクタル画像を生成するには、以下のコードを実行します。

require 'RMagick'
include Magick

img = Image.read("plasma:fractal"){
self.size = "150x150"
}

img[0].write("sample720a.png")

exit

出力画像(sample720a.png)


動作環境
ruby1.8.6-26/RMagick-2.3.0-ImageMagick-6.4.0-2-Q8

関連項目
RMagickで濃淡模様が中央に吸い込まれるような画像を作成する

Tuesday, December 30, 2008

JMagickで画像の端がかすれたような処理をする

JMagickで画像の端がかすれたような処理をするには、以下のコードを実行します。


import java.awt.*;
import magick.*;

public class JMagickTest45
{
public static void main(String args[])
throws MagickException
{
/* 画像の端をかすれたように処理する */
MagickImage mi = new MagickImage(new ImageInfo("sf2.jpg"));
int w = (int)mi.getDimension().getWidth();
int h = (int)mi.getDimension().getHeight();
// マスク作成
ImageInfo ii = new ImageInfo("xc:none");
ii.setSize(w + "x" + h);
MagickImage mi2 = new MagickImage(ii);
DrawInfo di = new DrawInfo(ii);
di.setFill(new PixelPacket(0xff*256, 0xff*256, 0xff*256, 0));
di.setPrimitive("rectangle 10, 10, 289, 214");
mi2.drawImage(di);
mi2 = mi2.spreadImage(3);
// 切り取り
mi2.compositeImage(CompositeOperator.SrcInCompositeOp,mi,0,0);
// 白背景作成
ImageInfo ii2 = new ImageInfo("xc:white");
ii2.setSize(w + "x" + h);
MagickImage mi3 = new MagickImage(ii2);
mi3.compositeImage(CompositeOperator.OverCompositeOp,mi2,0,0);

mi3.setFileName("sample726a.jpg");
mi3.writeImage(new ImageInfo());
}
}


元画像(sf2.jpg)


出力画像(sample726a.jpg)


関連情報
JMagickまとめ
ImageMagickで、画像の端をかすれたように処理する
ImageMagickでクレヨン風の文字列を描画する

groovyで矢印を描画する

groovyで矢印を描画するには、以下のコードを実行します。


import groovy.swing.j2d.*

def gr = new GraphicsRenderer()
gr.renderToFile("sample786a.png", 200, 200){
antialias("on")
arrow( x: 100, y: 100, width: 100, height: 50,
angle:45,
fill: color("#bbddff"),
borderColor: color("#103080"),
borderWidth: 2
)
}


出力画像(sample786a.png)


動作環境
Groovy1.6.0 Beta2, JDK1.6 Update11

Monday, December 29, 2008

RMagickで、画像を中心から上下へ徐々に大きく揺らす

RMagickで、画像を中心から上下へ徐々に大きく揺らすには、以下のコードを実行します。

require 'RMagick'
include Magick

images1 = ImageList.new("sf2.jpg")
img = images1.fx("j>h/2?p[cos(pi*j/15)*(j-h/2)*0.1,0]:p[cos(pi*(j-h/2)/15)*(h/2-j)*0.1,0]", Magick::AllChannels)

img.write("sample719a.png")

exit

元画像(sf2.jpg)


出力画像(sample719a.png)


動作環境
ruby1.8.6-26/RMagick-2.3.0-ImageMagick-6.4.0-2-Q8

関連項目
ImageMagickで、画像を中心から上下へ徐々に大きく揺らす (convertコマンドでの同様の処理)
RMagickで画像を揺らす

groovyで円弧を描画する

groovyで円弧を描画するには、以下のコードを実行します。


import groovy.swing.j2d.*

def gr = new GraphicsRenderer()
gr.renderToFile("sample785.png", 200, 200){
antialias("on")
arc( x: 0, y: 0, width: 198, height: 198,
start:0, extent:45,
borderColor: color("#cc0000"),
borderWidth: 2,
fill: color(red: 0xff, green: 0xcc, blue: 0x66),
close: "pie"
)
}


出力画像(sample785.png)


動作環境
Groovy1.6.0 Beta2, JDK1.6 Update11

関連項目
SVGRendererで円弧を描画する (SVGRendererでの同様の処理)

Sunday, December 28, 2008

librsvgを使用して文字ごとに書式を設定する

librsvgを使用して文字ごとに書式を設定するには、以下のsvgファイルを処理します。

pop.svg

<?xml version="1.0"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns="http://www.w3.org/2000/svg" version="1.1"
xmlns:xlink="http://www.w3.org/1999/xlink"
width="200" height="70">
<!-- 文字ごとに書式を変更 -->
<text x="10" y="46" font-family="Tahoma"
fill="#a09090" stroke="#a09090" stroke-width="1">
<tspan font-size="52">S</tspan><tspan font-size="30">ample</tspan>
</text>
</svg>


コマンド
rsvg-convert pop.svg -f png -o sample732a.png


出力画像(sample732a.png)

○関連項目
librsvgをwindowsで使用してSVGからPNG画像を生成する (librsvgをWindowsで使用する方法)
librsvgを使用して、画像に半透明ぼかしの文字列を描画する
librsvgで文字列を描画する
・libsvgに関する他の記事はこちらを参照してください。