Saturday, October 11, 2008

Java2DとJava Image Filters(pixels)を使用してMaximumフィルタを適用する

Java2DとJava Image Filters(pixels)を使用してMaximumフィルタを適用するには、以下のコードを実行します。

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

public class Java2DTest54
{
public static void main(String args[])
throws Exception
{
/* Maximumフィルタを画像に適用する */
BufferedImage img = ImageIO.read(new File("sf.jpg"));
MaximumFilter df = new MaximumFilter();
BufferedImage img2 = df.filter(img, null);
ImageIO.write(img2, "jpg", new File("sample585a.jpg"));
}
}

元画像(sf.jpg)


出力画像(sample585a.jpg)


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

Python Imaging Libraryを使用して画像をぼかす

Python Imaging Libraryを使用して画像をぼかすには、以下のコードを実行します。

# coding=UTF-8
import Image
import ImageFilter

# 画像をぼかす
img1 = Image.open("sf.jpg")
img2 = img1.filter(ImageFilter.BLUR)
img2.save("sample620a.jpg")

元画像(sf.jpg)


出力画像(sample620a.jpg)


関連情報
Python Imaging Libraryまとめ

librsvgでポリラインを描画する

librsvgでポリラインを描画するには、以下のsvgファイルを処理します。

polyline.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"
width="200" height="200">
<polyline points="100,0 0,200 200,200"
style="fill:#bbddff; stroke-width:1; stroke:#000000 "
/>
</svg>

コマンド
rsvg-convert polyline.svg -f png -o sample676.png

出力画像(sample676.png)


関連項目
librsvgをwindowsで使用してSVGからPNG画像を生成する (librsvgをWindowsで使用する方法)

Friday, October 10, 2008

Java2DとJava Image Filters(pixels)を使用して文字列をガラスのように描画する

Java2DとJava Image Filters(pixels)を使用して文字列をガラスのように描画するには、以下のコードを実行します。

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

public class Java2DTest53
{
public static void main(String args[])
throws Exception
{
/* ガラス効果 */
BufferedImage img = ImageIO.read(new File("sf.jpg"));

/* displacementマップの作成 */
BufferedImage img2 = new BufferedImage(
img.getWidth(), img.getHeight(), BufferedImage.TYPE_INT_ARGB
);
/* 白背景に塗りつぶし後、黒で文字列描画 */
FillFilter ff = new FillFilter(0xffffffff);
img2 = ff.filter(img2, null);
Graphics2D gr = img2.createGraphics();
gr.setColor(new Color(0x00, 0x00, 0x00, 0xff));
gr.setFont(new Font("Tahoma", Font.BOLD, 100));
gr.drawString("SF", 40, 150);
gr.dispose();
/* displacementマップのぼかし */
GaussianFilter gf = new GaussianFilter(4);
img2 = gf.filter(img2, null);

DisplaceFilter df = new DisplaceFilter();
/* displacementマップ設定 */
df.setDisplacementMap(img2);
/* effect量 */
df.setAmount(0.7f);
/* 端の処理 */
df.setEdgeAction(TransformFilter.CLAMP);
BufferedImage img3 = df.filter(img, null);

ImageIO.write(img3, "jpg", new File("sample584a.jpg"));
}
}

元画像(sf.jpg)


出力画像(sample584a.jpg)


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

librsvgでポリゴンを描画する

librsvgでポリゴンを描画するには、以下のsvgファイルを処理します。

polygon.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"
width="200" height="200">
<polygon points="100,0 0,200 200,200"
style="fill:#bbddff; stroke-width:1; stroke:#000000 "
/>
</svg>


コマンド
rsvg-convert polygon.svg -f png -o sample675.png

出力画像(sample675.png)


関連項目
librsvgをwindowsで使用してSVGからPNG画像を生成する (librsvgをWindowsで使用する方法)

Thursday, October 09, 2008

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>sample644(ImageMagick6.4.2)</title>
</head>
<body>
<?php
/* 画像の左上下と右下に半透明のグラデーションを描画する */
$im = new Imagick("sf2.jpg");
$im2 = new Imagick();
$im2->newImage($im->getImageWidth(), $im->getImageHeight(), "black");
$im2->setImageMatte(true);
$idraw = new ImagickDraw();
/* 塗りつぶし色設定 */
$idraw->setStrokeColor('white');
$idraw->setStrokeWidth(200);
$idraw->setStrokeAntialias(false);
$idraw->line(0, $im->getImageHeight(), $im->getImageWidth(), 0);
$im2->drawImage($idraw);
$im2->paintTransparentImage("white", 0, 0);
$im2->paintOpaqueImage("black", "#bbddffd0", 0);
$im2->blurImage(0, 20, Imagick::CHANNEL_ALL);

/* 重ね合わせ */
$im->compositeImage($im2, Imagick::COMPOSITE_DEFAULT, 0, 0);
$im->writeImage('sample644a.jpg');

$im2->destroy();
$im->destroy();
?>
<img src="sample644a.jpg" />

</body>
</html>

元画像(sf2.jpg)


出力画像(sample644a.jpg)


関連項目




Java2DとJava Image Filters(pixels)を使用して画像のドロップシャドウ付き文字列を描画する

Java2DとJava Image Filters(pixels)を使用して画像のドロップシャドウ付き文字列を描画するには、以下のコードを実行します。

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

public class Java2DTest52
{
public static void main(String args[])
throws Exception
{
/* 影付けする */
BufferedImage img = ImageIO.read(new File("sf.jpg"));
BufferedImage img2 = new BufferedImage(
img.getWidth(), img.getHeight(), BufferedImage.TYPE_INT_ARGB
);
Graphics2D gr = img2.createGraphics();
gr.setColor(new Color(0xff, 0xff, 0xff, 0xff));
gr.setFont(new Font("Tahoma", Font.BOLD, 28));
gr.drawString("San Francisco", 5, 50);
gr.dispose();

// ShadowFilter sf = new ShadowFilter(3f,3f,-3f,0.8f);
ShadowFilter sf = new ShadowFilter();
/* 半径 */
sf.setRadius(7f);
/* 透明度 */
sf.setOpacity(0.9f);
/* 角度 */
sf.setAngle(300f/180f*ImageMath.PI);
/* 距離 */
sf.setDistance(5f);
/* 影の色 */
sf.setShadowColor(0xff202020);
/* 影のマージン */
sf.setAddMargins(false);
/* 影のみにするか */
sf.setShadowOnly(false);
BufferedImage img3 = sf.filter(img2, null);

Graphics2D gr2 = img.createGraphics();
gr2.drawImage(img3,0,0,null);
gr2.dispose();

ImageIO.write(img, "jpg", new File("sample583a.jpg"));
}
}

元画像(sf.jpg)


出力画像(sample583a.jpg)

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

librsvgで角丸四角を描画する

librsvgで角丸四角を描画するには、以下のsvgファイルを処理します。

roundrectangle.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"
width="200" height="200">
<rect x="50" y="50" width="100" height="100"
rx="20" ry="20"
style="fill:#bbddff; stroke-width:1;
stroke:#000000 "/>
</svg>


コマンド
rsvg-convert roundrectangle.svg -f png -o sample674.png

出力画像(sample674.png)


関連項目
librsvgをwindowsで使用してSVGからPNG画像を生成する (librsvgをWindowsで使用する方法)

Wednesday, October 08, 2008

Java2DとJava Image Filters(pixels)を使用して画像をサーモグラフィ風に変換する

Java2DとJava Image Filters(pixels)を使用して画像をサーモグラフィ風に変換するには、以下のコードを実行します。

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

public class Java2DTest51
{
public static void main(String args[])
throws Exception
{
/* Lookupフィルタ */
BufferedImage img = ImageIO.read(new File("sf.jpg"));

/* カラーマップを作成 */
ArrayColormap ac = new ArrayColormap();
ac.setColorRange(0, 50, Color.BLACK.getRGB(), Color.BLUE.getRGB());
ac.setColorRange(51, 101, Color.BLUE.getRGB(), Color.GREEN.getRGB());
ac.setColorRange(102, 152, Color.GREEN.getRGB(), Color.YELLOW.getRGB());
ac.setColorRange(153, 204, Color.YELLOW.getRGB(), Color.RED.getRGB());
ac.setColorRange(205, 255, Color.RED.getRGB(), Color.WHITE.getRGB());
LookupFilter lf = new LookupFilter(ac);

BufferedImage img2 = lf.filter(img, null);
ImageIO.write(img2, "jpg", new File("sample582a.jpg"));
}
}

元画像(sf.jpg)


出力画像(sample582a.jpg)

関連項目
Jerry Huxtableさんのホームページ
Java Image Filtersのページ
java.netでのプロジェクトページ

Python Imaging Libraryを使用して、画像の左右反転・上下反転を行う

Python Imaging Libraryを使用して、画像の左右反転・上下反転を行うには、以下のコードを実行します。

# coding=UTF-8
import Image
# 画像の左右反転
img1 = Image.open("sf.jpg")
img2 = img1.transpose(Image.FLIP_LEFT_RIGHT)
img2.save("sample619a.jpg")
# 画像の上下反転
img3 = img1.transpose(Image.FLIP_TOP_BOTTOM)
img3.save("sample619b.jpg")

元画像(sf.jpg)


出力画像(sample619a.jpg)


出力画像(sample619b.jpg)


関連情報
Python Imaging Libraryまとめ

librsvgで楕円を描画する

librsvgで楕円を描画するには、以下のsvgを処理します
ellipse.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"
width="300" height="300">
<ellipse cx="150" cy="150" rx="100" ry="70"
style="fill:#bbddff; stroke-width:1; stroke:#000000 "
/>
</svg>

コマンド
rsvg-convert ellipse.svg -f png -o sample673.png

出力画像(sample673.png)

関連項目
librsvgをwindowsで使用してSVGからPNG画像を生成する (librsvgをWindowsで使用する方法)

Tuesday, October 07, 2008

Java2DとJava Image Filters(pixels)を使用して炎のような画像を生成する

Java2DとJava Image Filters(pixels)を使用して炎のような画像を生成するには、以下のコードを実行します。

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

public class Java2DTest50
{
public static void main(String args[])
throws Exception
{
/* FBMフィルタ */
BufferedImage img = new BufferedImage(
200, 200, BufferedImage.TYPE_INT_RGB
);

FBMFilter fbmf = new FBMFilter();
/* effect量 */
fbmf.setAmount(1f);
/* 操作タイプ */
fbmf.setOperation(FBMFilter.NOISE);
/* スケール */
fbmf.setScale(32);
/* 引き伸ばし率 */
fbmf.setStretch(1f);
/* 角度 */
fbmf.setAngle(10f/180f*ImageMath.PI);

/* カラーマップを作成&設定 */
ArrayColormap ac = new ArrayColormap();
ac.setColorRange(0, 100, 0x00000000, 0xffff8040);
ac.setColorRange(101, 200, 0xffff8040, 0xffffff60);
ac.setColorRange(201, 255, 0xffffff60, 0xffffffe0);
fbmf.setColormap(ac);

BufferedImage img2 = fbmf.filter(img, null);
ImageIO.write(img2, "jpg", new File("sample581a.jpg"));
}
}

出力画像(sample581a.jpg)


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

librsvgで円を描画する

librsvgで円を描画するには、以下のsvgファイルを処理します。

circle.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"
width="200" height="200">
<circle cx="100" cy="100" r="90"
style="fill:#bbddff; stroke-width:1; stroke:#000000 "
/>
</svg>

コマンド
rsvg-convert circle.svg -f png -o sample672.png

出力画像(sample672.png)

関連項目
librsvgをwindowsで使用してSVGからPNG画像を生成する (librsvgをWindowsで使用する方法)

Monday, October 06, 2008

Java2DとJava Image Filters(pixels)を使用して画像にグローフィルタをかける

Java2DとJava Image Filters(pixels)を使用して画像にグローフィルタをかけるには、以下のコードを実行します。
>
import java.awt.*;
import java.awt.geom.*;
import java.awt.image.*;
import java.io.*;
import java.util.*;
import javax.imageio.*;
import com.jhlabs.image.*;

public class Java2DTest49
{
public static void main(String args[])
throws Exception
{
/* グローフィルタ */
BufferedImage img = ImageIO.read(new File("sf2.jpg"));

GlowFilter gf = new GlowFilter();
/* effect量 */
gf.setAmount(0.3f);

BufferedImage img2 = gf.filter(img, null);
ImageIO.write(img2, "jpg", new File("sample580a.jpg"));
}
}

元画像(sf2.jpg)


出力画像(sample580a.jpg)


関連項目
Jerry Huxtableさんのホームページ
Java Image Filtersのページ
java.netでのプロジェクトページ

Rmagickで画像の端がかすれたように処理する

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

require 'RMagick'
include Magick

# 余白
px = 10
py = 10
# 画像読み込み
images = ImageList.new("sf2.jpg")
# マスク作成
mask = Image.new(images[0].columns, images[0].rows){
self.background_color = "none"
}
idr = Draw.new
idr.rectangle(px, py, images[0].columns-1-px, images[0].rows-1-px)
idr.draw(mask);
mask = mask.spread(2);

# マスクを利用して切り取り
img2 = mask.composite(images[0], 0, 0, SrcInCompositeOp)

# 背景用画像
bg = Image.new(images[0].columns, images[0].rows){
self.background_color = "white"
}
img3 = bg.composite(img2, CenterGravity, 0, 0, OverCompositeOp);
img3.write("sample643a.png")

exit

元画像(sf2.jpg)


出力画像()


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

関連項目

librsvgで四角を描画する

librsvgで四角を描画するには、以下のsvgファイルを処理します。

rectangle.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"
width="300" height="300">
<rect x="50" y="50" width="200" height="200"
style="fill:#bbddff; stroke-width:1;
stroke:#000000 "/>
</svg>


コマンド
rsvg-convert rectangle.svg -f png -o sample671.png

出力画像(sample671.png)



関連項目
librsvgをwindowsで使用してSVGからPNG画像を生成する (librsvgをWindowsで使用する方法)

Sunday, October 05, 2008

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

Java2DとJava Image Filters(pixels)を使用して放射ブラーをかけるには、以下のコードを実行します。

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

public class Java2DTest48
{
public static void main(String args[])
throws Exception
{
/* 放射ブラー */
BufferedImage img = ImageIO.read(new File("sf2.jpg"));

MotionBlurFilter mbf = new MotionBlurFilter();
mbf.setAngle(0f/180f*ImageMath.PI);
mbf.setDistance(1f);
mbf.setRotation(0.0f);
mbf.setZoom(0.1f);
mbf.setWrapEdges(false);

BufferedImage img2 = mbf.filter(img, null);
ImageIO.write(img2, "jpg", new File("sample579a.jpg"));
}
}

元画像(sf2.jpg)


出力画像(sample579a.jpg)


関連項目
Jerry Huxtableさんのホームページ
http://www.jhlabs.com/index.html

Java Image Filtersのページ
http://www.jhlabs.com/ip/filters/

java.netでのプロジェクトページ
https://pixels.dev.java.net/

groovyで画像に放射ブラーをかける (groovyでの同様の処理)

Python Imaging Libraryを使用して画像を回転させる

Python Imaging Libraryを使用して画像を回転させるには、以下のコードを実行します。

# coding=UTF-8
import Image
# 画像の回転
img1 = Image.open("sf.jpg")
img2 = img1.rotate(20)
img2.save("sample618a.jpg")
img3 = img1.rotate(20, expand=1)
img3.save("sample618b.jpg")

元画像(sf.jpg)


出力画像1(sample618a.jpg):拡張無し


出力画像2(sample618b.jpg):拡張あり


関連情報
Python Imaging Libraryまとめ

librsvgで線を描画する

librsvgで線を描画するには、以下のsvgファイルを処理します。

line.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"
width="200" height="200">
<line x1="0" y1="0" x2="200" y2="200"
style="stroke:#bbddff; stroke-width:2"/>
</svg>

コマンド
rsvg-convert line.svg -f png -o sample670.png

出力画像(sample670.png)


関連項目
librsvgをwindowsで使用してSVGからPNG画像を生成する (librsvgをWindowsで使用する方法)