Tuesday, May 05, 2009

ImageMagickとPHPで画像に3D枠をつける

ImageMagickとPHPで画像に3D枠をつけるには、以下のコードを実行します。


<!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>sample1103(ImageMagick6.5.2)</title>
</head>
<body>
<?php
$im = new Imagick("sf.jpg");
$im->raiseImage(10,10,10,0,true);
$im->writeImage('sample1103a.png');

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

</body>
</html>


元画像(sf.jpg)


出力画像(sample1103a.png)
Imagickで3D枠をつけた画像

関連項目
WindowsでImageMagickをPHPから使用するための設定

im4javaで文字列をクレヨン風に描画する

im4javaで文字列をクレヨン風に描画するには、以下のコードを実行します。


import java.util.*;
import org.im4java.core.*;
import org.im4java.process.*;

// im4java-0.97.0-bin.tar.bz2を解凍してim4java-0.97.0.jarはclasspathに通す
public class Im4java13
{
public static void main(String args[])
throws Exception
{
try
{
// ConvertCmd convert = new ConvertCmd();
ImageCommand convert = new WindowsConvertCmd();

IMOperation op = new IMOperation();
op.size(120, 40);
op.addImage("xc:white");
op.stroke("#fad759");
op.fill("#f6b739");
op.font("Tahoma");
op.draw("font-size 30 text 2,30 'Sample'");
op.spread(1);
op.addImage("sample1075a.png");
convert.run(op);
}
catch(CommandException cex)
{
System.out.println(cex.getErrorText());
cex.printStackTrace();
}
}

// im4java 0.97
static class WindowsConvertCmd extends ImageCommand
{
public WindowsConvertCmd()
{
setCommand("cmd");
setCommand("/c");
setCommand("convert");
/* another way
setCommand("C:\\Program Files\\ImageMagick-6.4.9-Q16\\convert");
*/
}
}

}


出力画像(sample1075a.png)
im4javaでクレヨン風に描画した文字列

関連情報
im4javaのまとめ

im4javaのホームページ
im4java

RMagickで画像を円形に切り取って周囲を磨りガラスのようにする

RMagickで画像を円形に切り取って周囲を磨りガラスのようにするには、以下のコードを実行します。


require 'RMagick'
include Magick

images = ImageList.new("sf.jpg")
images.alpha = ActivateAlphaChannel
images.new_image(images.columns, images.rows){
self.background_color = "none"
}
dr = Draw.new
dr.fill = "white"
dr.ellipse(images.columns/2, images.rows/2,
images.columns*0.8/2, images.rows*0.8/2,
0, 360)
dr.draw(images);
images[images.size-1] = images.negate_channel(
grayscale=false,AllChannels).
blur_channel(0,10,AllChannels).spread(3)
images.first.composite(images.last, 0, 0,
OverCompositeOp).write("sample995a.png")

exit


元画像(sf.jpg)


出力画像(sample995a.png)
RMagickで円形に切り取って周囲を磨りガラスのようにした画像

動作環境
ruby1.8.6, rmagick2.9.0

関連項目
ImageMagickで画像を磨りガラスのように切り取る (convertコマンドによる同様の処理)

Monday, May 04, 2009

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>sample1093(ImageMagick6.5.2)</title>
</head>
<body>
<?php
$im = new Imagick('sf2.jpg');
$im->setImageVirtualPixelMethod(
Imagick::VIRTUALPIXELMETHOD_TRANSPARENT);
$im->setImageMatte(true);
$points = array(100,0,200,50);
//$im->distortImage(Imagick::DISTORTION_ARC,
//$points, false);
// ArcDistortion in distort.h
$im->distortImage(9, $points, true);
$im->writeImage('sample1093a.png');
$im->destroy();
?>
<img src="sample1093a.png" />
</body>
</html>

元画像(sf2.jpg)


出力画像(sample1093a.png)
ImageMagickとPHPで扇形に変形させた画像

関連項目
ImageMagickで画像を扇形に変形させる (convertコマンドでの同様の処理)
ImageMagickとPHPで画像を変形させる

groovyで青色っぽい所以外をグレースケールにする

groovyで青色っぽい所以外をグレースケールにするには、以下のコードを実行します。


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

img = ImageIO.read(new File("sf.jpg"))
gr = new GraphicsRenderer()
gr.renderToFile("sample952a.png", img.width,
img.height){
image(image: img)
rect(x:0, y:0, width: img.width,
height: img.height, borderColor:no){
texturePaint(x: 0, y: 0, image:img )
filters {
chromaKey(color: color("blue"),
hTolerance:0.15, sTolerance:0.8,
bTolerance:1)
grayscale()
}
}
}


元画像(sf.jpg)


出力画像(sample952a.png)
groovyで青色っぽい所以外をグレースケールにした画像

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

関連項目
groovyでクロマキー処理をする

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で霧がかかったような効果

Sunday, May 03, 2009

ImageMagickで画像を変形させる

ImageMagickで画像を変形させるには、以下のバッチファイルを実行します。制御点は変形前x,yと変形後x,yで制御します。

rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.4.8-Q16

%im%\convert.exe sf.jpg -alpha activate -virtual-pixel transparent -distort shepards "100,0 110,20 200,100 190,110 100,200 90,190 0,100 10,90 0,200 0,180" sample940a.png

元画像(sf.jpg)


出力画像(sample940a.png)
ImageMagickで変形させた画像

関連項目
ImageMagickで画像を扇形に変形させる
ImageMagickで台形変形を行う
ImageMagickとPHPで画像を変形させる (Imagickでの同様の処理)

im4javaで画像を反転させる

im4javaで画像を反転させるには、以下のコードを実行します。


import java.util.*;
import org.im4java.core.*;
import org.im4java.process.*;

// im4java-0.97.0-bin.tar.bz2を解凍してim4java-0.97.0.jarはclasspathに通す
public class Im4java12
{
public static void main(String args[])
throws Exception
{
try
{
// ConvertCmd convert = new ConvertCmd();
ImageCommand convert = new WindowsConvertCmd();

IMOperation op = new IMOperation();
op.addImage("sf.jpg");
// -negate
op.negate();
op.addImage("sample1059a.png");
convert.run(op);

}
catch(CommandException cex)
{
System.out.println(cex.getErrorText());
cex.printStackTrace();
}
}

// im4java 0.97
static class WindowsConvertCmd extends ImageCommand
{
public WindowsConvertCmd()
{
setCommand("cmd");
setCommand("/c");
setCommand("convert");
/* another way
setCommand("C:\\Program Files\\ImageMagick-6.4.9-Q16\\convert");
*/
}
}

}


出力画像(sample1059a.png)
im4javaで反転させた画像

関連情報
im4javaのまとめ

ScriptomとImageMagickで日本語を描画する

ScriptomとImageMagickで日本語の文字列を描画するには、以下のコードを実行します。

import org.codehaus.groovy.scriptom.*

Scriptom.inApartment
{
im = new ActiveXObject("ImageMagickObject.MagickImage.1")
im.convert("-size", "200x200", "xc:none", "-stroke", "#113377",
"-fill", "#bbddff", "-font", "c:\\windows\\fonts\\msmincho.ttc",
"-pointsize", "60", "-gravity", "center",
"-draw", "text 0,0 '日本語'",
"sample1073a.png")
}

出力画像(sample1073a.png)


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

関連項目
groovyで日本語を描画する

Saturday, May 02, 2009

groovyで2種類の画像を交互に配置して背景画像を作成する

groovyで2種類の画像を交互に配置して背景画像を作成するには、以下のコードを実行します。


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

img1 = ImageIO.read(new File("flower1.png"))
img2 = ImageIO.read(new File("flower2.png"))
gr = new GraphicsRenderer()
img = gr.render(img1.width + img2.width,
img1.height + img2.height){
image(image: img1, x:0, y:0)
image(image: img2, x:img1.width, y:0)
image(image: img2, x:0, y:img1.height)
image(image: img1, x:img2.width, y:img2.height)
}
gr.renderToFile("sample951a.png", 200, 200){
antialias("on")
rect(x:0, y:0, width: 200,
height: 200, borderColor:no){
texturePaint(x: 0, y: 0, image: img )
}
}


元画像1(flower1.png)


元画像2(flower2.png)


出力画像(sample951a.png)
groovyで2種類の画像を交互に配置した背景画像

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

関連項目
groovyで画像をグレースケールと反転させたグレースケールを交互に配置した画像に変換する

ScriptomとImageMagickで画像をセピア調に変換する

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


import org.codehaus.groovy.scriptom.*

Scriptom.inApartment
{
im = new ActiveXObject("ImageMagickObject.MagickImage.1")
im.convert("sf.jpg", "-sepia-tone", "80%", "sample1074a.png")
}


元画像(sf.jpg)


出力画像(sample1074a.png)
ScriptomとImageMagickでセピア調に変換した画像


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

関連項目
ImageMagickでグレースケール・白黒・セピア調変換

Friday, May 01, 2009

RMagickで画像を4色グレースケールに変換する

RMagickで画像を4色グレースケールに変換するには、以下のコードを実行します。

require 'RMagick'
include Magick

images = ImageList.new("sf.jpg")
images.quantize(4, GRAYColorspace).
write("sample938a.jpg")

exit

元画像(sf.jpg)


出力画像(sample938a.jpg)
RMagickで4色グレースケールに変換した画像

動作環境
ruby1.8.6, rmagick2.7.1

関連項目
ImageMagickで画像を4色グレースケールの画像に減色する

ScriptomとImageMagickでポリラインを描画する

ScriptomとImageMagickでポリラインを描画するには、以下のコードを実行します。


import org.codehaus.groovy.scriptom.*

Scriptom.inApartment
{
im = new ActiveXObject("ImageMagickObject.MagickImage.1")
im.convert("-size", "200x200", "xc:none", "-stroke", "#113377",
"-fill", "#bbddff", "-draw", "polyline 100,0,0,199,199,199",
"sample1073a.png")
}


出力画像(sample1073a.png)
ScriptomとImageMagickで描画したポリライン

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

Thursday, April 30, 2009

groovyで透明な文字列を描画する

groovyで透明な文字列を描画するには、以下のコードを実行します。


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

img = ImageIO.read(new File("sf.jpg"))
gr = new GraphicsRenderer()
gr.renderToFile("sample950a.png", img.width, img.height){
antialias("on")
image(image: img)
font(new java.awt.Font('Tahoma', java.awt.Font.BOLD, 110))
subtract( borderColor: no, fill: 'white'){
rect(x:20, y:20, width: img.width-40, height: img.height-40)
text( x:30, y:60, text: "SF")
}
}
gr.renderToFile("sample950b.png", img.width, img.height){
antialias("on")
image(image: img)
font(new java.awt.Font('Tahoma', java.awt.Font.BOLD, 110))
subtract( borderColor: no, fill: 'black', opacity:0.5){
rect(x:20, y:20, width: img.width-40, height: img.height-40)
text( x:30, y:60, text: "SF")
}
}


元画像(sf.jpg)


出力画像1(sample950a.png)


出力画像2(sample950b.png)
groovyで透明な文字列を描画した画像

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

関連項目
groovyで文字列をガラスのように描画する
groovyで日本語を描画する
SVGRendererで透明な文字列を描画する (SVGRendererでの同様の処理)

Im4javaで画像を切り取る

Im4javaで画像を切り取るには、以下のコードを実行します。


import org.im4java.core.*;
import org.im4java.process.*;

// im4java-0.97.0-bin.tar.bz2を解凍してim4java-0.97.0.jarはclasspathに通す
public class Im4java11
{
public static void main(String args[])
throws Exception
{
try
{
// ConvertCmd convert = new ConvertCmd();
ImageCommand convert = new WindowsConvertCmd();

IMOperation op = new IMOperation();
op.addImage("sf.jpg");
// crop(width, height, x, y)
op.crop(100,100,50,50);
op.addImage("sample1037a.png");
convert.run(op);

}
catch(CommandException cex)
{
System.out.println(cex.getErrorText());
cex.printStackTrace();
}
}

// im4java 0.97
static class WindowsConvertCmd extends ImageCommand
{
public WindowsConvertCmd()
{
setCommand("cmd");
setCommand("/c");
setCommand("convert");
/* another way
setCommand("C:\\Program Files\\ImageMagick-6.4.9-Q16\\convert");
*/
}
}

}


元画像(sf.jpg)


出力画像(sample1037a.png)
im4javaで切り取った画像

関連情報
im4javaのまとめ

im4javaのホームページ
im4java

ScriptomとImageMagickで画像をぼかす

ScriptomとImageMagickで画像をぼかすには、以下のコードを実行します。


import org.codehaus.groovy.scriptom.*

Scriptom.inApartment
{
im = new ActiveXObject("ImageMagickObject.MagickImage.1")
im.convert("sf.jpg", "-blur", "0x5", "sample1072a.png")
}


元画像(sf.jpg)


出力画像(sample1072a.png)
ScriptomとImageMagickでぼかした画像

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

Wednesday, April 29, 2009

ImageMagickで画像にストライプ枠をつける

ImageMagickで画像にストライプ枠をつけるには、以下のバッチファイルを実行します。

rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.4.8-Q16

%im%\convert.exe -size 1x1 xc:white xc:#99aaff -append -filter point -resize 20x20! -filter mitchell sample939a.png
%im%\convert.exe -size 220x220 tile:sample939a.png -virtual-pixel tile -distort SRT 60 -gravity center sf.jpg -composite sample939b.png


元画像(sf.jpg)


出力画像(sample939b.png)
ImageMagickでストライプの枠をつけた画像

関連項目
ImageMagickで画像に立体的な角丸四角の枠をつける
ImageMagickで、画像に半透明角丸四角の枠をつける
ImageMagickで、縁取りつきの角丸四角で画像を切り取る
ImageMagickで画像に半透明ガラス枠をつける
ImageMagickとPHPで画像にストライプ枠をつける (Imagickでの同様の処理)

im4javaでエッジ抽出をおこなう

im4javaでエッジ抽出をおこなうには、以下のコードを実行します。


import java.util.*;
import org.im4java.core.*;
import org.im4java.process.*;

// im4java-0.97.0-bin.tar.bz2を解凍してim4java-0.97.0.jarはclasspathに通す
public class Im4java10
{
public static void main(String args[])
throws Exception
{
try
{
// ConvertCmd convert = new ConvertCmd();
ImageCommand convert = new WindowsConvertCmd();

IMOperation op = new IMOperation();
op.addImage("sf.jpg");
op.edge(1.0);
op.addImage("sample1036a.png");
convert.run(op);

}
catch(CommandException cex)
{
System.out.println(cex.getErrorText());
cex.printStackTrace();
}
}

// im4java 0.97
static class WindowsConvertCmd extends ImageCommand
{
public WindowsConvertCmd()
{
setCommand("cmd");
setCommand("/c");
setCommand("convert");
/* another way
setCommand("C:\\Program Files\\ImageMagick-6.4.9-Q16\\convert");
*/
}
}
}


出力画像(sample1036a.png)
im4javaでエッジ抽出した画像

関連情報
im4javaのまとめ

im4javaのホームページ
im4java

ScriptomとImageMagickでポリゴンを描画する

ScriptomとImageMagickでポリゴンを描画するには、以下のコードを実行します。


import org.codehaus.groovy.scriptom.*

Scriptom.inApartment
{
im = new ActiveXObject("ImageMagickObject.MagickImage.1")
im.convert("-size", "200x200", "xc:none", "-stroke", "#113377",
"-fill", "#bbddff", "-draw", "polygon 100,0,0,199,199,199",
"sample1071a.png")
}


出力画像(sample1071a.png)
ScriptomとImageMagickで描画したポリゴン

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

関連項目
groovyでポリゴンを描画する (GraphicsBuilderによる同様の処理)
ScriptomとImageMagickで角丸四角を描画する

Tuesday, April 28, 2009

groovyで画像を半透明にして重ね合わせる

groovyで画像を半透明にして重ね合わせるには、以下のコードを実行します


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

img = ImageIO.read(new File("sf.jpg"))
gr = new GraphicsRenderer()
gr.renderToFile("sample949a.png", img.width, img.height){
antialias("on")
image(image: img)
image(file: 'sample3b.jpg', x:10, y:10, opacity:0.5)
}


元画像(sf.jpg)


元画像2(sample3b.jpg)


出力画像(sample949a.png)
groovyで半透明にして重ね合わせた画像

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

関連項目
groovyで画像をグレースケールと反転させたグレースケールを交互に配置した画像に変換する
SVGRendererで画像を半透明にして重ね合わせる (SVGRendererによる同様の処理)

ImageMagickでグラデーションのかかった市松模様を作成する

ImageMagickでグラデーションのかかった市松模様を作成するには、以下のバッチファイルを実行します。

rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.5.0-Q16

%im%\convert.exe -set option:distort:viewport 200x200+0+0 pattern:checkerboard -normalize -fill #7799ff -opaque black -virtual-pixel tile -distort SRT 0.25,30 ( -size 200x200 gradient:#22338880-#00000000 ) -composite sample1035a.png

出力画像(sample1035a.png)


関連項目
ImageMagickで画像を縮小してタイル配置にして回転させる
ImageMagickとPHPでグラデーションのかかった市松模様を作成する (Imagickでの同様の処理)

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

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

import org.codehaus.groovy.scriptom.*

Scriptom.inApartment
{
im = new ActiveXObject("ImageMagickObject.MagickImage.1")
im.convert("-size", "200x200", "plasma:fractal",
"sample1070a.png")
}

出力画像(sample1070a.png)
ScriptomとImageMagickで生成したプラズマフラクタル画像

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

関連項目
ScriptomとImageMagickでカウントダウン動画を作成する

Monday, April 27, 2009

RMagickで緑っぽいところ以外をグレースケールにする

RMagickで緑っぽいところ以外をグレースケールにするには、以下のコードを実行します。

require 'RMagick'
include Magick

images = ImageList.new("sample8.jpg")
images.fx("(hue>0.19&&hue<0.40)?p:(r+g+b)/3",
DefaultChannels).write("sample937a.jpg")

exit



出力画像(sample937a.jpg)


動作環境
ruby1.8.6, rmagick2.7.1

関連項目
ImageMagickで任意の範囲の色相の色を残す (convertコマンドでの同様の処理)

pycairoで画像をビデオ風に加工する

pycairoで画像をビデオ風に加工するには、以下のコードを実行します。


# coding=UTF-8
import cairo

surface = cairo.ImageSurface(cairo.FORMAT_ARGB32, 200, 200)
img = cairo.ImageSurface.create_from_png("sf.png")
ctx = cairo.Context(surface)

ctx.set_source_surface(img, 0, 0)
ctx.paint()

ia = surface.get_data()
for ip in range(0, surface.get_stride() *
surface.get_height(), 4):
if (ip/surface.get_stride())%2 == 0 :
ia[ip+0] = chr(ord(ia[ip+0])/2)
ia[ip+1] = chr(ord(ia[ip+1])/2)
ia[ip+2] = chr(ord(ia[ip+2])/2)

surface.write_to_png('sample1034a.png')


元画像(sf.jpg)


出力画像(sample1034a.png)


動作環境
Python2.6.1, GTK+2.16.0, pycairo1.4.12-2

関連項目
pycairoのまとめ

pycairoをWindowsにインストール

ScriptomとImageMagickで角丸四角を描画する

ScriptomとImageMagickで角丸四角を描画するには、以下のコードを実行します。

import org.codehaus.groovy.scriptom.*

Scriptom.inApartment
{
im = new ActiveXObject("ImageMagickObject.MagickImage.1")
im.convert("-size", "200x200", "xc:none", "-stroke", "#113377",
"-fill", "#bbddff", "-draw", "roundrectangle 10,10,189,189,20,20",
"sample1069a.png")
}

出力画像(sample1069a.png)
ScriptomとImageMagickで描画した角丸四角

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

関連項目
ScriptomとImageMagickで直線を描画する

Sunday, April 26, 2009

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

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


# coding=UTF-8
import cairo

surface = cairo.ImageSurface(cairo.FORMAT_ARGB32, 200, 200)
img = cairo.ImageSurface.create_from_png("sf.png")
ctx = cairo.Context(surface)

ctx.set_source_surface(img, 0, 0)
ctx.paint()

ia = surface.get_data()
for ip in range(0, surface.get_stride() *
surface.get_height(), 4):
maxv = max(ord(ia[ip+0]), ord(ia[ip+1]), ord(ia[ip+2]))
minv = max(ord(ia[ip+0]), ord(ia[ip+1]), ord(ia[ip+2]))
pval = (maxv+minv)/2
ia[ip+0] = chr(int(pval * 0x55/float(0xff)))
ia[ip+1] = chr(int(pval * 0xaa/float(0xff)))
ia[ip+2] = chr(int(pval * 0xee/float(0xff)))

surface.write_to_png('sample1033a.png')


元画像(sf.png)


出力画像(sample1033a.png)


動作環境
Python2.6.1, GTK+2.16.0, pycairo1.4.12-2

関連項目
pycairoのまとめ

pycairoをWindowsにインストール

groovyで円形以外の部分をグレースケールにする

groovyで円形以外の部分をグレースケールにするには、以下のコードを実行します。


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

img = ImageIO.read(new File("sf.jpg"))
gr = new GraphicsRenderer()
gr.renderToFile("sample948a.png", img.width, img.height){
antialias("on")
rect( x: 0, y: 0,
width: img.width, height: img.height,
borderColor: no){
texturePaint(x: 0, y: 0, image: img )
filters {
grayscale()
}
}
ellipse( cx: img.width/2, cy: img.height/2,
radiusx: img.width/2, radiusy: img.height/2,
borderColor: no){
texturePaint(x: 0, y: 0, image: img )
}
}


元画像(sf.jpg)


出力画像(sample948a.png)
groovyで円形以外の部分をグレースケールにした画像

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

ScriptomとImageMagickで画像を上下反転・左右反転させる

ScriptomとImageMagickで画像を上下反転・左右反転させるには、以下のコードを実行します。

import org.codehaus.groovy.scriptom.*

Scriptom.inApartment
{
im = new ActiveXObject("ImageMagickObject.MagickImage.1")
// 上下反転
im.convert("sf.jpg", "-flip", "sample1068a.png")
// 左右反転
im.convert("sf.jpg", "-flop", "sample1068b.png")
}

元画像(sf.jpg)


出力画像1(sample1068a.png)
ScriptomとImageMagickで上下反転させた画像

出力画像2(sample1068b.png)
ScriptomとImageMagickで左右反転させた画像

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