RMagickでパスを使用して左上と右下が丸くなった四角を描画するには、以下のコードを実行します。
require 'RMagick'
include Magick
img = Image.new(100, 100){
self.background_color = "none"
}
dr = Draw.new
# 描画色
dr.fill = "#bbddff"
# パスを描画(SVGパスの形式で指定)
dr.path("M 0,10 A 10,10 0 0,1 10,0 L 99,0 L99,90 A 10,10 0 0,1 90,99 L 0,99 Z")
dr.draw(img);
img.write("sample757a.png")
exit
出力画像(sample757a.pn)
動作環境
ruby1.8.6, rmagick2.7.1
関連項目
Rmagickで画像を木炭画調に変換してグラデーションを適用する
RMagickで、画像を中心から上下へ徐々に大きく揺らす
RMagickで画像を台形変形させる
Saturday, January 24, 2009
groovyでポリラインを描画する
groovyでポリラインを描画するには、以下のコードを実行します。
出力画像(sample801a.png)
動作環境
Groovy1.6.0 Beta2, JDK1.6 Update11
関連項目
groovyで直線を描画する
groovyで楕円を描画する
groovyでポリゴンを描画する
import groovy.swing.j2d.*
def gr = new GraphicsRenderer()
gr.renderToFile("sample801a.png", 200, 200){
antialias("on")
polyline( points: [198,0, 0,100, 198,198],
fill: color("#bbddff"),
borderColor: color("#103080"),
borderWidth: 2
)
}
出力画像(sample801a.png)
動作環境
Groovy1.6.0 Beta2, JDK1.6 Update11
関連項目
groovyで直線を描画する
groovyで楕円を描画する
groovyでポリゴンを描画する
Friday, January 23, 2009
RMagickでアニメーションGIFを作成する
RMagickでアニメーションGIFを作成するには、以下のコードを実行します。
require 'RMagick'
include Magick
# アニメーションGIFを作成する
images = ImageList.new("sample3b.jpg", "sample4.jpg", "sample6.jpg")
images.iterations = 0
images.each do |img|
img.delay = 50
end
images.write("sample756a.gif")
元画像(sample3b.jpg)
元画像2(sample4.jpg)
元画像3(sample6.jpg)
出力画像(sample756a.gif)
動作環境
ruby1.8.6, rmagick2.7.1
関連項目
RMagickで画像を透過PNGのエッジ抽出画像に変換する
RMagickで画像の上に半透明グラデーションの斜線を描画する
ImageMagickでアニメーションGIFを出力する (convertコマンドによる同様の処理)
require 'RMagick'
include Magick
# アニメーションGIFを作成する
images = ImageList.new("sample3b.jpg", "sample4.jpg", "sample6.jpg")
images.iterations = 0
images.each do |img|
img.delay = 50
end
images.write("sample756a.gif")
元画像(sample3b.jpg)
元画像2(sample4.jpg)
元画像3(sample6.jpg)
出力画像(sample756a.gif)
動作環境
ruby1.8.6, rmagick2.7.1
関連項目
RMagickで画像を透過PNGのエッジ抽出画像に変換する
RMagickで画像の上に半透明グラデーションの斜線を描画する
ImageMagickでアニメーションGIFを出力する (convertコマンドによる同様の処理)
groovyで画像のポスタイラズをする
groovyで画像のポスタイラズをするには、以下のコードを実行します。
元画像(sf.jpg)
出力画像(
動作環境
Groovy1.6.0 Beta2, JDK1.6 Update11
関連項目
groovyで画像の彩度を上げる
import groovy.swing.j2d.*
def gr = new GraphicsRenderer()
gr.renderToFile("sample865a.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 {
posterize(numLevels:8)
}
}
}
元画像(sf.jpg)
出力画像(
sample865a.png
)動作環境
Groovy1.6.0 Beta2, JDK1.6 Update11
関連項目
groovyで画像の彩度を上げる
Thursday, January 22, 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>sample740(ImageMagick6.4.4)</title>
</head>
<body>
<?php
/* 画像をグレースケールの立体的な角丸四角に変換する */
/* 余白x */
$px=10;
/* 余白y */
$py=10;
/* 角丸x */
$rx=10;
/* 角丸y */
$ry=10;
$im = new Imagick("sf.jpg");
$im->setImageColorspace(Imagick::COLORSPACE_GRAY);
$im->modulateImage(160, 100, 100);
/* マスク作成 */
$im2 = new Imagick();
$im2->newImage($im->getImageWidth(), $im->getImageHeight(), "none");
$idraw = new ImagickDraw();
$idraw->setFillColor('white');
$idraw->roundrectangle($px, $py,
$im->getImageWidth()-$px-1, $im->getImageHeight()-$py-1, $rx, $ry);
$im2->drawImage($idraw);
$im3 = $im2->clone();
$im2->compositeImage($im, Imagick::COMPOSITE_IN, 0, 0, Imagick::CHANNEL_ALL);
/* 立体的な角丸四角作成 */
$im3->shadeImage(false, 135, 23);
$im3->blurImage(0, 2, Imagick::CHANNEL_ALL);
$im3->normalizeImage(Imagick::CHANNEL_ALL);
$im3->compositeImage($im2, Imagick::COMPOSITE_OVERLAY, 0, 0, Imagick::CHANNEL_ALL);
$im3->writeImage('sample740a.png');
$im3->destroy();
$im2->destroy();
$im->destroy();
?>
<img src="sample740a.png" />
</body>
</html>
元画像(sf.jpg)
出力画像(sample740a.png)
関連項目
ImageMagickで画像をグレースケールの立体的な角丸四角に変換する (convertコマンドによる同様の処理)
ImageMagickとPHPで手でちぎったように画像を切り取る
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>sample740(ImageMagick6.4.4)</title>
</head>
<body>
<?php
/* 画像をグレースケールの立体的な角丸四角に変換する */
/* 余白x */
$px=10;
/* 余白y */
$py=10;
/* 角丸x */
$rx=10;
/* 角丸y */
$ry=10;
$im = new Imagick("sf.jpg");
$im->setImageColorspace(Imagick::COLORSPACE_GRAY);
$im->modulateImage(160, 100, 100);
/* マスク作成 */
$im2 = new Imagick();
$im2->newImage($im->getImageWidth(), $im->getImageHeight(), "none");
$idraw = new ImagickDraw();
$idraw->setFillColor('white');
$idraw->roundrectangle($px, $py,
$im->getImageWidth()-$px-1, $im->getImageHeight()-$py-1, $rx, $ry);
$im2->drawImage($idraw);
$im3 = $im2->clone();
$im2->compositeImage($im, Imagick::COMPOSITE_IN, 0, 0, Imagick::CHANNEL_ALL);
/* 立体的な角丸四角作成 */
$im3->shadeImage(false, 135, 23);
$im3->blurImage(0, 2, Imagick::CHANNEL_ALL);
$im3->normalizeImage(Imagick::CHANNEL_ALL);
$im3->compositeImage($im2, Imagick::COMPOSITE_OVERLAY, 0, 0, Imagick::CHANNEL_ALL);
$im3->writeImage('sample740a.png');
$im3->destroy();
$im2->destroy();
$im->destroy();
?>
<img src="sample740a.png" />
</body>
</html>
元画像(sf.jpg)
出力画像(sample740a.png)
関連項目
ImageMagickで画像をグレースケールの立体的な角丸四角に変換する (convertコマンドによる同様の処理)
ImageMagickとPHPで手でちぎったように画像を切り取る
ImageMagickとPHPで画像の端がちぎれたようなスケッチ調の画像に変換する
ImageMagickとPHPで画像を角丸四角に切り取って文字入れする
groovyでポリゴンを描画する
groovyでポリゴンを描画するには、以下のコードを実行します。
出力画像(sample800a.png)
動作環境
Groovy1.6.0 Beta2, JDK1.6 Update11
関連項目
groovyで直線を描画する
groovyで楕円を描画する
ScriptomとImageMagickでポリゴンを描画する (ScriptomとImageMagickによる同様の処理)
import groovy.swing.j2d.*
def gr = new GraphicsRenderer()
gr.renderToFile("sample800a.png", 200, 200){
antialias("on")
polygon( points: [100,0, 0,198, 198,198],
fill: color("#bbddff"),
borderColor: color("#103080"),
borderWidth: 2
)
}
出力画像(sample800a.png)
動作環境
Groovy1.6.0 Beta2, JDK1.6 Update11
関連項目
groovyで直線を描画する
groovyで楕円を描画する
ScriptomとImageMagickでポリゴンを描画する (ScriptomとImageMagickによる同様の処理)
Wednesday, January 21, 2009
groovyで画像の彩度を上げる
groovyで画像の彩度を上げるには、以下のコードを実行します。
元画像(sf.jpg)
出力画像(sample864a.png)
動作環境
Groovy1.6.0 Beta2, JDK1.6 Update11
関連項目
groovyで引っかいたような背景画像を作成する
groovyで画像をさまざまなパターンで塗りつぶす
groovyで画像を感光させたように加工する
import groovy.swing.j2d.*
def gr = new GraphicsRenderer()
gr.renderToFile("sample864a.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 {
saturation(amount:1.5);
}
}
}
元画像(sf.jpg)
出力画像(sample864a.png)
動作環境
Groovy1.6.0 Beta2, JDK1.6 Update11
関連項目
groovyで引っかいたような背景画像を作成する
groovyで画像をさまざまなパターンで塗りつぶす
groovyで画像を感光させたように加工する
RMagickで画像の上に半透明グラデーションの斜線を描画する
RMagickで画像の上に半透明グラデーションの斜線を描画するには、以下のコードを実行します。
fxメソッドのi,jはx,y座標、hは画像の高さを示します。
元画像(sf.jpg)
出力画像(sample755a.png)
動作環境
ruby1.8.6, rmagick2.7.1
関連項目
RMagickで画像を透過PNGのエッジ抽出画像に変換する
RMagickで、画像を中心から上下へ徐々に大きく揺らす
require 'RMagick'
include Magick
# 画像に半透明グラデーションの斜線を描画する
images = ImageList.new("sf.jpg")
images2 = ImageList.new
images2 << Image.new(images[0].columns, images[0].rows){
self.background_color = "white"
}
images2[0].alpha = ActivateAlphaChannel
images2[0] = images2.fx("(i+j)%4==0?#BBDDFF:0")
images2[0] = images2.fx("(i+j)%4==0?p*(h-j)/h:0", AlphaChannel)
img3 = images[0].composite(images2[0], CenterGravity, 0, 0,
OverCompositeOp);
img3.write("sample755a.png")
exit
fxメソッドのi,jはx,y座標、hは画像の高さを示します。
元画像(sf.jpg)
出力画像(sample755a.png)
動作環境
ruby1.8.6, rmagick2.7.1
関連項目
RMagickで画像を透過PNGのエッジ抽出画像に変換する
RMagickで、画像を中心から上下へ徐々に大きく揺らす
Tuesday, January 20, 2009
RMagickで画像を透過PNGのエッジ抽出画像に変換する
RMagickで画像を透過PNGのエッジ抽出画像に変換するには、以下のコードを実行します。
require 'RMagick'
include Magick
# 画像を透過PNGのエッジ抽出画像に変換する
images = ImageList.new("sf2.jpg")
images[0].colorspace = GRAYColorspace
images[0].alpha = ActivateAlphaChannel
img2 = images[0].enhance().enhance()
images[0] = img2.edge(1);
images[0] = images.fx("r", AlphaChannel)
images[0] = images.fx("#5588DD")
images[0].write("sample754a.png")
images2 = ImageList.new("sf2.jpg")
images2[0].colorspace = GRAYColorspace
img3 = images2[0].composite(images[0], NorthWestGravity, 0, 0, OverCompositeOp);
img3.write("sample754b.png")
exit
元画像(sf2.jpg)
出力画像1(sample754a.png):エッジ抽出画像を透過PNGにして、エッジ抽出に色付けした画像
出力画像2(sample754b.png):グレースケールにした元画像とエッジ抽出画像の重ね合わせ
動作環境
ruby1.8.6, rmagick2.7.1
関連項目
Rmagickで画像を木炭画調に変換してグラデーションを適用する
ImageMagickで透過PNGのエッジ抽出画像を生成する (convertコマンドでの同様の処理)
require 'RMagick'
include Magick
# 画像を透過PNGのエッジ抽出画像に変換する
images = ImageList.new("sf2.jpg")
images[0].colorspace = GRAYColorspace
images[0].alpha = ActivateAlphaChannel
img2 = images[0].enhance().enhance()
images[0] = img2.edge(1);
images[0] = images.fx("r", AlphaChannel)
images[0] = images.fx("#5588DD")
images[0].write("sample754a.png")
images2 = ImageList.new("sf2.jpg")
images2[0].colorspace = GRAYColorspace
img3 = images2[0].composite(images[0], NorthWestGravity, 0, 0, OverCompositeOp);
img3.write("sample754b.png")
exit
元画像(sf2.jpg)
出力画像1(sample754a.png):エッジ抽出画像を透過PNGにして、エッジ抽出に色付けした画像
出力画像2(sample754b.png):グレースケールにした元画像とエッジ抽出画像の重ね合わせ
動作環境
ruby1.8.6, rmagick2.7.1
関連項目
Rmagickで画像を木炭画調に変換してグラデーションを適用する
ImageMagickで透過PNGのエッジ抽出画像を生成する (convertコマンドでの同様の処理)
groovyでピンを描画する
groovyでピンを描画するには、以下のコードを実行します。
出力画像(sample799a.png)
動作環境
Groovy1.6.0 Beta2, JDK1.6 Update11
関連項目
groovyでバースト上にシェイプを塗りつぶす
groovyで足型を描画する
SVGRendererでピンを描画する (SVGRendererによる同様の処理)
import groovy.swing.j2d.*
def gr = new GraphicsRenderer()
gr.renderToFile("sample799a.png", 200, 200){
antialias("on")
pin( cx:100, cy:100, radius: 20, height:80,
fill: color("#bbddff"),
borderColor: color("#103080"),
borderWidth: 2,
angle: 45
)
}
出力画像(sample799a.png)
動作環境
Groovy1.6.0 Beta2, JDK1.6 Update11
関連項目
groovyでバースト上にシェイプを塗りつぶす
groovyで足型を描画する
SVGRendererでピンを描画する (SVGRendererによる同様の処理)
Monday, January 19, 2009
groovyで引っかいたような背景画像を作成する
groovyで引っかいたような背景画像を作成するには、以下のコードを実行します。
出力画像(sample863a.png)
動作環境
Groovy1.6.0 Beta2, JDK1.6 Update11
関連項目
groovyで画像に放射ブラーをかける
groovyで画像に編み目模様をつける
import groovy.swing.j2d.*
def gr = new GraphicsRenderer()
gr.renderToFile("sample863a.png", 200, 200){
antialias("on")
rect( x: 0, y: 0, width: 200, height: 200,
borderColor: no){
filters {
scratch(angle:10, angleVariation:0.8,
color: color("#c0c0c0"), density:0.9,
length:0.5, width:0.5, seed:2009)
}
}
}
出力画像(sample863a.png)
動作環境
Groovy1.6.0 Beta2, JDK1.6 Update11
関連項目
groovyで画像に放射ブラーをかける
groovyで画像に編み目模様をつける
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>sample739(ImageMagick6.4.4)</title>
</head>
<body>
<?php
/* 指定された複数画像ファイルの高さをそろえて連結する */
$fns = array('sample3b.jpg', 'sf.jpg', 'sf2.jpg');
$height=100;
$im = new Imagick($fns[0]);
for($ind=1;$ind<count($fns);$ind++){
$imt = new Imagick($fns[$ind]);
$imt->resizeImage(0, $height, imagick::FILTER_MITCHELL, 1);
$im->addImage($imt);
$im->setImageIndex(0);
$nim=$im->appendImages(false);
$imt->destroy();
$im->destroy();
$im = $nim;
}
$im->writeImage('sample739a.png');
$im->destroy();
?>
<img src="sample739a.png" />
</body>
</html>
出力画像(sample739a.png)
関連項目
ImageMagickとPHPで複数の画像の境界をぼかして連結する
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>sample739(ImageMagick6.4.4)</title>
</head>
<body>
<?php
/* 指定された複数画像ファイルの高さをそろえて連結する */
$fns = array('sample3b.jpg', 'sf.jpg', 'sf2.jpg');
$height=100;
$im = new Imagick($fns[0]);
for($ind=1;$ind<count($fns);$ind++){
$imt = new Imagick($fns[$ind]);
$imt->resizeImage(0, $height, imagick::FILTER_MITCHELL, 1);
$im->addImage($imt);
$im->setImageIndex(0);
$nim=$im->appendImages(false);
$imt->destroy();
$im->destroy();
$im = $nim;
}
$im->writeImage('sample739a.png');
$im->destroy();
?>
<img src="sample739a.png" />
</body>
</html>
出力画像(sample739a.png)
関連項目
ImageMagickとPHPで複数の画像の境界をぼかして連結する
ImageMagickとPHPで、複数の画像に余白をつけて連結する
ImageMagickとPHPで大きさの違う画像を連結する時の余白の色を指定する
Sunday, January 18, 2009
RMagickで画像にモザイクをかける
RMagickで画像にモザイクをかけるには、以下のコードを実行します。
require 'RMagick'
include Magick
# 画像にモザイクをかける
images = ImageList.new("sf.jpg")
img2 = images[0].resize(images[0].columns/8, images[0].rows/8)
img3 = img2.resize(images[0].columns, images[0].rows, PointFilter)
img3.write("sample753a.png")
exit
元画像(sf2.jpg)
出力画像(sample753a.png)
動作環境
ruby1.8.6, rmagick2.7.1
関連項目
ImageMagickでドット絵風の文字を描画する-その2
require 'RMagick'
include Magick
# 画像にモザイクをかける
images = ImageList.new("sf.jpg")
img2 = images[0].resize(images[0].columns/8, images[0].rows/8)
img3 = img2.resize(images[0].columns, images[0].rows, PointFilter)
img3.write("sample753a.png")
exit
元画像(sf2.jpg)
出力画像(sample753a.png)
動作環境
ruby1.8.6, rmagick2.7.1
関連項目
ImageMagickでドット絵風の文字を描画する-その2
groovyで直線を描画する
groovyで直線を描画するには、以下のコードを実行します。
出力画像(sample798a.png)
動作環境
Groovy1.6.0 Beta2, JDK1.6 Update11
関連項目
groovyで円を描画する
groovyで楕円を描画する
ScriptomとImageMagickで直線を描画する (ScriptomとImageMagickで同様の処理)
import groovy.swing.j2d.*
def gr = new GraphicsRenderer()
gr.renderToFile("sample798a.png", 200, 200){
antialias("on")
line( x1:0, y1:0, x2: 200, y2:200,
borderColor: color("#103080"),
borderWidth: 2
)
}
出力画像(sample798a.png)
動作環境
Groovy1.6.0 Beta2, JDK1.6 Update11
関連項目
groovyで円を描画する
groovyで楕円を描画する
ScriptomとImageMagickで直線を描画する (ScriptomとImageMagickで同様の処理)