Saturday, May 24, 2008

RMagickで画像を影つき角丸四角に変換する

RMagickで画像を影つき角丸四角に変換するには、以下のコードを実行します。

require 'RMagick'
include Magick

img1 = ImageList.new("sf.jpg")
img2 = Image.new(img1.columns, img1.rows){
self.background_color = "none"
}
img1.alpha = ActivateAlphaChannel
dr = Draw.new
# 描画色
dr.fill = "white"
# 角丸四角を描画
dr.roundrectangle(0,0,img1.columns-1, img1.rows-1, 20, 20)
dr.draw(img2);
img3 = img1.composite(img2, 0, 0, DstInCompositeOp);

# 影を作成
img3.background_color = "black"
img4 = img3.shadow(5, 5, 3, 0.4)
img5 = img4.composite(img3, 0, 0, OverCompositeOp);
img6 = Image.new(img4.columns, img4.rows){
self.background_color='white'
}
img7 = img6.composite(img5, 0, 0, OverCompositeOp);

img7.write("sample458a.png")

exit

元画像(sf.jpg)


出力画像(sample458a)


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

関連項目
RMagickをWindowsで使用するための設定
RMagickで画像を角丸四角に切り取る

RMagickで画像を角丸四角に切り取る

RMagickで画像を角丸四角に切り取るには以下のコードを実行します。

require 'RMagick'
include Magick

img1 = ImageList.new("sf.jpg")
img2 = Image.new(img1.columns, img1.rows){
self.background_color = "none"
}
img1.alpha = ActivateAlphaChannel
dr = Draw.new
# 描画色
dr.fill = "white"
# 角丸四角を描画
dr.roundrectangle(0,0,img1.columns-1, img1.rows-1, 20, 20)
dr.draw(img2);
img3 = img1.composite(img2, 0, 0, DstInCompositeOp);
img3.write("sample457a.png")

exit

元画像(sf.jpg)


出力画像(sample457a.png):四隅は透明な透過PNGになります


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

関連項目
RMagickをWindowsで使用するための設定
RMagickで画像を影つき角丸四角に変換する

RMagickでグラデーション画像を生成する

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

require 'RMagick'
include Magick

img1 = Image.new(200,200, GradientFill.new(0, 0, 200, 0, "#bbddff", "#ffffff"))
img1.write("sample456a.jpg")

exit

出力画像(sample456a.jpg)


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

関連項目
RMagickをWindowsで使用するための設定

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>sample398</title>
</head>
<body>
<?php
/* ファイルはUTF-8で保存してね */
$im = new Imagick('sf.jpg');
$idraw = new ImagickDraw();
/* フォント設定 */
$idraw->setFont("c:\\winnt\\fonts\\msgothic.ttc");
/* フォントサイズ設定 */
$idraw->setFontSize(20);
/* 塗りつぶし色設定 */
$idraw->setFillColor('#bbddff');
/* 透明度設定 */
$idraw->setFillOpacity(0.6);

/* gravity設定 */
$idraw->setGravity(Imagick::GRAVITY_SOUTH);
$im->annotateImage($idraw, 0, 0, 0, "サンフランシスコ");
$im->writeImage('sample398a.jpg');
/* $idraw->clear(); 2008/09/30追記:destroyと同様にClearDrawingWandを呼ぶので必要なし */
$idraw->destroy();
/* $im->clear(); 2008/09/30追記:destroyと同様にClearMagicWandを呼ぶので必要なし */
$im->destroy();
?>

<img src="sample398a.jpg" />

</body>
</html>

元画像(sf.jpg)


出力画像(sample398a.jpg)


環境
Apache 2.2.8/PHP5.2.5/ImageMagick6.4.0

関連項目
WindowsでImageMagickをPHPから使用するための設定 (Imagickの設定)
ImageMagickとPHPで、画像からはみ出した影付き文字列を描画する

RMagickで画像を重ね合わせる

RMagickで画像を重ね合わせるには、以下のコードを実行します。

require 'RMagick'
include Magick

img1 = ImageList.new("sf.jpg")
img2 = ImageList.new("sample6.jpg")
img3 = img1.composite(img2, CenterGravity, 0, 0, OverCompositeOp);
img3.write("sample455a.jpg")

exit

元画像1(sf.jpg)


元画像2(sample6.jpg)


出力画像(sample455a.jpg)


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

関連項目
RMagickをWindowsで使用するための設定

RMagickで日本語文字列を描画する

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

require 'RMagick'
include Magick

img1 = ImageList.new("sf.jpg")
dr = Draw.new
# 使用フォント
dr.font = "c:\\winnt\\fonts\\msgothic.ttc"
# ポイントサイズ
dr.pointsize = 30
# 描画色
dr.fill = "#bbddff"
# gravity
dr.gravity = CenterGravity
# ファイルはUTF-8で保存
dr.annotate(img1, 0, 0, 0, 0, "日本語")
img1.write("sample454a.jpg")

exit

元画像(sf.jpg)


出力画像(sample454a.jpg)


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

関連項目
RMagickをWindowsで使用するための設定
RMagickで半透明影つきの文字列を描画する

RMagickで、明度・彩度・色相を変更する

RMagickで明度・彩度・色相を変更するには、以下のコードを実行します。

require 'RMagick'
include Magick

img1 = ImageList.new("sf.jpg")
# 明度を70%に
img2 = img1.modulate(0.7, 1.0, 1.0)
img2.write("sample453a.jpg")
# 彩度を150%に
img3 = img1.modulate(1.0, 1.5, 1.0)
img3.write("sample453b.jpg")
# 色相を10%に
img3 = img1.modulate(1.0, 1.0, 0.1)
img3.write("sample453c.jpg")

exit

元画像(sf.jpg)


出力画像(sample452a.jpg)


出力画像(sample453b.jpg)


出力画像(sample453c.jpg)


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

関連項目
RMagickをWindowsで使用するための設定

RMagickをWindowsで使用するための設定

Ruby用のImageMagickのAPIのRMagickをWindowsで使用するには、以下を実行します。
1. Rubyのインストール
http://rubyforge.org/projects/rubyinstaller/から
ruby186-26.exeのダウンロード、インストール。
2. RMagickのダウンロード
http://rubyforge.org/projects/rmagick/から
RMagick-2.3.0-ImageMagick-6.4.0-2-Q8.zipをダウンロード。
3.ImageMagickのインストールとRMagickのインストール
zipを解凍して、ImageMagick-6.4.0-2-Q8-windows-dll.exeをインストール。
以下のコマンドを実行。
gem install rmagick --local

※2009/03/27追記
RMagick2.9.0ではMicrosoft Visual C++ 2008 SP1 Redistributable Packageが必要のようです。
http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en


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

require 'RMagick'
include Magick

img1 = ImageList.new("sf.jpg")
img2 = img1.blur_image(0,2)
img2.write("sample452.jpg")

exit

元画像(sf.jpg)


出力画像(sample452.jpg)


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

Friday, May 23, 2008

JMagickで画像の輪郭を影で浮かび上がらせた画像を生成する

JMagickで画像の輪郭を影で浮かび上がらせた画像を生成するには、以下のコードを実行します。

import magick.*;

public class JMagickTest31
{
public static void main(String args[])
throws MagickException
{
MagickImage mi = new MagickImage(new ImageInfo("tree1.jpg"));
/* 画像を2値化 */
mi.thresholdImage(40000);
/* 白色を水色に変換 */
mi.opaqueImage(
PixelPacket.queryColorDatabase("white"),
new PixelPacket(0x30*256, 0x70*256, 0xa0*256, 0)
);
/* 黒色を白色に変換 */
mi.opaqueImage(
PixelPacket.queryColorDatabase("black"),
PixelPacket.queryColorDatabase("white")
);
/* ぼかし */
MagickImage mi2 = mi.blurImage(0, 3);

MagickImage mi3 = new MagickImage(new ImageInfo("tree1.jpg"));
/* 画像を2値化 */
mi3.thresholdImage(40000);
/* 白色を透明に変換 */
mi3.opaqueImage(
PixelPacket.queryColorDatabase("white"),
new PixelPacket(65535, 65535, 65535, 65535)
);
/* 黒色を水色に変換 */
mi3.opaqueImage(
PixelPacket.queryColorDatabase("black"),
new PixelPacket(0x30*256, 0x70*256, 0xa0*256, 0)
);

mi2.compositeImage(CompositeOperator.SrcOverCompositeOp,mi3,0,0);

mi2.setFileName("sample451a.png");
mi2.writeImage(new ImageInfo());
}
}

元画像(tree1.jpg)


出力画像(sample451a.png)


環境
JDK6 Upadate6(JDK1.6.0_06)/jmagick-win-6.3.9-Q16


関連情報
JMagickまとめ
JMagickで2値化した画像の黒色部分の色を変え、白色分を透明にする
ImageMagickで、画像の輪郭を影で浮かび上がらせた画像を生成する (Convertコマンド)

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>sample397</title>
</head>
<body>
<?php
$im = new Imagick('sample6.jpg');
$im->setImageMatte(true);
/* 半透明グラデーション */
$im2=$im->fxImage('j/h', Imagick::CHANNEL_ALPHA);

$im3 = new Imagick('sf.jpg');
$im3->compositeImage($im2, Imagick::COMPOSITE_DEFAULT, 30, 30);
$im3->writeImage('sample397a.jpg');

$im3->clear();
$im3->destroy();

$im2->clear();
$im2->destroy();

$im->clear();
$im->destroy();

?>

<img src="sample397a.jpg" />

</body>
</html>

元画像(sample6.jpg)


元画像(sf.jpg)


出力画像(sample397a.jpg)


環境
Apache 2.2.8/PHP5.2.5/ImageMagick6.4.0

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

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>sample396</title>
</head>
<body>
<?php
/* 画像の一部を切り取り */
$im = new Imagick('sf.jpg');
$im->cropImage(100, 100, 100, 50);
$im->writeImage('sample396a.jpg');
/* $im->clear(); 2008/09/30追記:destroyと同様にClearMagicWandを呼ぶので必要なし */
$im->destroy();

?>

<img src="sample396a.jpg" />

</body>
</html>

元画像(sf.jpg)


出力画像(sample396a.jpg)


環境
Apache 2.2.8/PHP5.2.5/ImageMagick6.4.0

関連項目
ImageMagickとPHPで、画像を丸く切り取る

JMagickで画像をビデオ風にする

JMagickで画像をビデオ風にするには、以下の処理を実行します。

import magick.*;

public class JMagickTest30
{
public static void main(String args[])
throws MagickException
{
/* 画像をビデオ風にする */
/* 1x2pixelの半透明模様を作成 */
ImageInfo ii = new ImageInfo("none");
ii.setSize("1x2");
MagickImage mi = new MagickImage(ii);
byte data[] = {
(byte)0x00, (byte)0x00, (byte)0x00, (byte)0x80,
(byte)0xff, (byte)0xff, (byte)0xff, (byte)0x00
};
mi.constituteImage(1, 2, "RGBA", data);

/* tileで画像上に描画 */
MagickImage mi2 = new MagickImage(new ImageInfo("sf.jpg"));
DrawInfo di = new DrawInfo(ii);
di.setTile(mi);
di.setPrimitive("rectangle 0,0," +
mi2.getDimension().getWidth() + "," +
mi2.getDimension().getHeight());
mi2.drawImage(di);

mi2.setFileName("sample450a.png");
mi2.writeImage(new ImageInfo());
}
}

元画像(sf.jpg)


出力画像(sample450a.png)


環境
JDK6 Upadate6(JDK1.6.0_06)/jmagick-win-6.3.9-Q16


関連情報
JMagickまとめ
ImageMagickをJavaから使用するための設定(JMagickインストール)

Thursday, May 22, 2008

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>sample395</title>
</head>
<body>
<?php
/* 画面上部に10ピクセルの余白を追加 */
$im = new Imagick('sf.jpg');
$im->setImageBackgroundColor('white');
$im->spliceImage(20, 25, 0, 0);

$im2 = new Imagick();
$im2->newImage($im->getImageWidth(), $im->getImageHeight(), 'none');
$idraw = new ImagickDraw();
/* フォント設定 */
$idraw->setFont('Tahoma');
/* フォントサイズ設定 */
$idraw->setFontSize(35);
/* 塗りつぶし色設定 */
$idraw->setFillColor('#bbddff');
$idraw->annotation(2, 30, 'San Francisco');
$im2->drawImage($idraw);
$im2->trimImage(0);
/* 影つけ */
$im3=$im2->clone();
$im3->setImageBackgroundColor('black');
$im3->shadowImage(40,2,3,3);
/* 重ね合わせ */
$im->addImage($im3);
$im->addImage($im2);
$im4=$im->mosaicImages();
$im4->writeImage('sample395a.jpg');

/* $im4->clear(); 2008/09/30追記:destroyと同様にClearMagicWandを呼ぶので必要なし */
$im4->destroy();
/* $im3->clear(); 2008/09/30追記:destroyと同様にClearMagicWandを呼ぶので必要なし */
$im3->destroy();
/* $im2->clear(); 2008/09/30追記:destroyと同様にClearMagicWandを呼ぶので必要なし */
$im2->destroy();
/* $im->clear(); 2008/09/30追記:destroyと同様にClearMagicWandを呼ぶので必要なし */
$im->destroy();

?>

<img src="sample395a.jpg" />

</body>
</html>


元画像(sf.jpg)


出力画像(sample395a.jpg)


環境
Apache 2.2.8/PHP5.2.5/ImageMagick6.4.0

関連項目
WindowsでImageMagickをPHPから使用するための設定 (Imagickの設定)
ImageMagickとPHPで画像に余白を追加する
ImageMagickとPHPで、画像に日本語の文字列を描画する
ImageMagickで、画像からはみ出して影付き文字列を描画する (Convertコマンド)

JMagickで2値化した画像の黒色部分の色を変え、白色分を透明にする

JMagickで2値化した画像の黒色部分の色を変え、白色分を透明にするには以下のコードを実行します。

import magick.*;

public class JMagickTest29
{
public static void main(String args[])
throws MagickException
{
/* 2値化した画像の黒色部分を水色に、白色部分を透明にする */
MagickImage mi = new MagickImage(new ImageInfo("tree1.jpg"));
/* 画像を2値化 */
mi.thresholdImage(32767);
/* 黒色を水色に変換 */
mi.opaqueImage(
PixelPacket.queryColorDatabase("black"),
new PixelPacket(0xbb*256, 0xdd*256, 0xff*256, 0)
);
/* 白色を透明に変換 */
mi.opaqueImage(
PixelPacket.queryColorDatabase("white"),
new PixelPacket(65535, 65535, 65535, 65535)
);
mi.setFileName("sample449a.png");
mi.writeImage(new ImageInfo());

/* 市松模様と重ね合わせ */
ImageInfo ii = new ImageInfo("pattern:checkerboard");
ii.setSize(mi.getDimension().getWidth() + "x" +
mi.getDimension().getHeight());
MagickImage mi2 = new MagickImage(ii);
mi2.compositeImage(CompositeOperator.SrcOverCompositeOp,mi,0,0);
mi2.setFileName("sample449b.png");
mi2.writeImage(new ImageInfo());
}
}

出力画像(sample229a.png)


出力画像(sample229b.png)


環境
JDK6 Upadate6(JDK1.6.0_06)/jmagick-win-6.3.9-Q16


関連情報
JMagickまとめ
ImageMagickをJavaから使用するための設定(JMagickインストール)
JMagickでビルトインパターンの画像を生成する
JMagickで画像を2値化する

JMagickでビルトインパターンの画像を生成する

JMagickでビルトインパターンの画像を生成するには以下のコードを実行します。

import magick.*;

public class JMagickTest28
{
public static void main(String args[])
throws MagickException
{
/* ビルトインパターンで画像を作成する */
ImageInfo ii = new ImageInfo("pattern:checkerboard");
ii.setSize("200x100");
MagickImage mi = new MagickImage(ii);
mi.setFileName("sample448a.png");
mi.writeImage(new ImageInfo());
}
}

出力画像(sample448a.png)


環境
JDK6 Upadate6(JDK1.6.0_06)/jmagick-win-6.3.9-Q16



関連情報
JMagickまとめ
ImageMagickをJavaから使用するための設定(JMagickインストール)
JMagickで2値化した画像の黒色部分の色を変え、白色分を透明にする

Wednesday, May 21, 2008

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>sample394</title>
</head>
<body>
<?php
/* 画面上部に10ピクセルの余白を追加 */
$im = new Imagick('sf.jpg');
$im->setImageBackgroundColor('#e2ddd4');
$im->spliceImage(0, 10, 0, 0);
$im->writeImage('sample394a.jpg');
/* $im->clear(); 2008/09/30追記:destroyと同様にClearMagicWandを呼ぶので必要なし */
$im->destroy();
/* 画面右側に10ピクセルの余白を追加 */
$im = new Imagick('sf.jpg');
$im->setImageBackgroundColor('#e2ddd4');
$im->spliceImage(10, 0, $im->getImageWidth(), 0);
$im->writeImage('sample394b.jpg');
/* $im->clear(); 2008/09/30追記:destroyと同様にClearMagicWandを呼ぶので必要なし */
$im->destroy();

?>

<img src="sample394a.jpg" />
<img src="sample394b.jpg" />

</body>
</html>

元画像(sf.jpg)


出力画像(sample394a.jpg)


出力画像(sample394b.jpg)


環境
Apache 2.2.8/PHP5.2.5/ImageMagick6.4.0

関連項目
WindowsでImageMagickをPHPから使用するための設定 (Imagickの設定)
ImageMagickとPHPで、画像からはみ出した影付き文字列を描画する

JMagickで画像を角丸四角に切り取る

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

import magick.*;

public class JMagickTest27
{
public static void main(String args[])
throws MagickException
{
/* 画像を角丸四角で切り取る */
MagickImage mi = new MagickImage(new ImageInfo("sf.jpg"));
int w = (int)mi.getDimension().getWidth();
int h = (int)mi.getDimension().getHeight();

ImageInfo ii = new ImageInfo("xc:none");
ii.setSize(w + "x" + h);
DrawInfo di = new DrawInfo(ii);
di.setFill(PixelPacket.queryColorDatabase("white"));
di.setPrimitive("roundrectangle 0,0," +
(w-1) + "," + (h-1) + ",20,20");
MagickImage mi2 = new MagickImage(ii);
mi2.drawImage(di);

mi2.compositeImage(CompositeOperator.SrcInCompositeOp,mi,0,0);
mi2.setFileName("sample447a.png");
mi2.writeImage(new ImageInfo());
}
}

出力画像(sf.jpg)


出力画像(sample447a.png)



環境
JDK6 Upadate6(JDK1.6.0_06)/jmagick-win-6.3.9-Q16


関連情報
JMagickまとめ
ImageMagickをJavaから使用するための設定(JMagickインストール)
JMagickで画像を丸く切り取る

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

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

import magick.*;

public class JMagickTest26
{
public static void main(String args[])
throws MagickException
{
/* 画像を半透明にする */
MagickImage mi = new MagickImage(new ImageInfo("sample6.jpg"));
/* 半透明のイメージを作成 */
ImageInfo ii = new ImageInfo("xc:#00000080");
ii.setSize(mi.getDimension().getWidth() + "x" + mi.getDimension().getHeight());
MagickImage mi2 = new MagickImage(ii);
/* Opacityをcopy */
mi.compositeImage(CompositeOperator.CopyOpacityCompositeOp,mi2, 0, 0);

/* 半透明になった画像を重ね合わせ */
MagickImage mi3 = new MagickImage(new ImageInfo("sf.jpg"));
mi3.compositeImage(CompositeOperator.SrcOverCompositeOp,mi,50,50);
mi3.setFileName("sample446a.jpg");
mi3.writeImage(new ImageInfo());
}
}

元画像(sample6.jpg)


元画像(sf.jpg)


出力画像(sample446a.jpg)


環境
JDK6 Upadate6(JDK1.6.0_06)/jmagick-win-6.3.9-Q16


関連情報
JMagickまとめ
ImageMagickをJavaから使用するための設定(JMagickインストール)
JMagickで、画像を重ね合わせる

Tuesday, May 20, 2008

JMagickでメディアンフィルタを適用する

JMagickでメディアンフィルタを適用するには、以下のコードを実行します。

import magick.*;

public class JMagickTest25
{
public static void main(String args[])
throws MagickException
{
/* 画像にメディアンフィルタを適用する */
MagickImage mi = new MagickImage(new ImageInfo("sf.jpg"));
MagickImage mo = mi.medianFilterImage(3);
mo.setFileName("sample445a.jpg");
mo.writeImage(new ImageInfo());
}
}

元画像(sf.jpg)


出力画像(sample445a.jpg)


環境
JDK6 Upadate6(JDK1.6.0_06)/jmagick-win-6.3.9-Q16


関連情報
JMagickまとめ
ImageMagickをJavaから使用するための設定(JMagickインストール)

JMagickで画像を2値化する

JMagickで画像を2値化するには、以下のコードを実行します。

import magick.*;

public class JMagickTest24
{
public static void main(String args[])
throws MagickException
{
/* 画像を2値化する */
MagickImage mi = new MagickImage(new ImageInfo("sf.jpg"));
mi.thresholdImage(40000);
mi.setFileName("sample444a.jpg");
mi.writeImage(new ImageInfo());
}
}

元画像(sf.jpg)


出力画像(sample444a.jpg)


環境
JDK6 Upadate6(JDK1.6.0_06)/jmagick-win-6.3.9-Q16


関連情報
JMagickまとめ
ImageMagickをJavaから使用するための設定(JMagickインストール)
JMagickで2値化した画像の黒色部分の色を変え、白色分を透明にする

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>sample393</title>
</head>
<body>
<?php
/* プラズマフラクタル画像 */
$im = new Imagick();
$im->newPseudoImage(200, 200, 'plasma:fractal');
$im->writeImage('sample393a.jpg');
/* $im->clear(); 2008/09/30追記:destroyと同様にClearMagicWandを呼ぶので必要なし */
$im->destroy();

?>

<img src="sample393a.jpg" />

</body>
</html>

出力画像(sample393a.jpg)


環境
Apache 2.2.8/PHP5.2.5/ImageMagick6.4.0

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

Monday, May 19, 2008

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>sample392</title>
</head>
<body>
<?php
/* ビデオ風の横線 */
$im = new Imagick('sf.jpg');
$im2=$im->fxImage('j%2==0?p:p*0.5');
$im2->writeImage('sample392a.jpg');
/* $im2->clear(); 2008/09/30追記:destroyと同様にClearMagicWandを呼ぶので必要なし */
$im2->destroy();
/* $im->clear(); 2008/09/30追記:destroyと同様にClearMagicWandを呼ぶので必要なし */
$im->destroy();

?>

<img src="sample392a.jpg" />

</body>
</html>

元画像(sf.jpg)


出力画像(sample392a.jpg)


環境
Apache 2.2.8/PHP5.2.5/ImageMagick6.4.0

関連項目
WindowsでImageMagickをPHPから使用するための設定 (Imagickの設定)
ImageMagickとPHPで画像をビデオ風にする - その2 (fxImageを使用しないで同様の処理)

Sunday, May 18, 2008

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>sample391</title>
</head>
<body>
<?php
/* クレヨン風の文字列描画 */
$im = new Imagick();
$im->newImage(120, 40, 'white');
$idraw = new ImagickDraw();
/* フォント設定 */
$idraw->setFont('Tahoma');
/* フォントサイズ設定 */
$idraw->setFontSize(30);
/* 塗りつぶし色設定 */
$idraw->setFillColor('#f6b739');
/* ストローク色設定 */
$idraw->setStrokeColor('#fad759');
$idraw->annotation(2, 30, 'Sample');
$im->drawImage($idraw);

$im->spreadImage(1);
$im->writeImage('sample391a.jpg');
/* $idraw->clear(); 2008/09/30追記:destroyと同様にClearDrawingWandを呼ぶので必要なし */
$idraw->destroy();
/* $im->clear(); 2008/09/30追記:destroyと同様にClearMagicWandを呼ぶので必要なし */
$im->destroy();

?>

<img src="sample391a.jpg" />

</body>
</html>

出力画像(sample391a.jpg)


環境
Apache 2.2.8/PHP5.2.5/ImageMagick6.4.0

関連項目
WindowsでImageMagickをPHPから使用するための設定 (Imagickの設定)
ImageMagickでクレヨン風の文字列を描画する (Convertコマンド)
ImageMagickとPHPで画像の端をかすれたように処理する

JMagickで画像を波型に揺らす

JMagickで画像を波型に揺らすには以下のコードを実行します。

import magick.*;

public class JMagickTest23
{
public static void main(String args[])
throws MagickException
{
/* 画像を波型に揺らす */
MagickImage mi = new MagickImage(new ImageInfo("sf.jpg"));
MagickImage mo = mi.waveImage(5, 50);
mo.setFileName("sample443a.jpg");
mo.writeImage(new ImageInfo());
}
}

元画像(sf.jpg)


出力画像(sample443a.jpg)


環境
JDK6 Upadate6(JDK1.6.0_06)/jmagick-win-6.3.9-Q16


関連情報
JMagickまとめ
ImageMagickをJavaから使用するための設定(JMagickインストール)