RMagickで画像をグラデーションのかかった砂地ぽく加工するには、以下のコードを実行します。
require 'RMagick'
include Magick
# 画像をグラデーションのかかった砂地ぽく加工する
images = ImageList.new("sf2.jpg")
images[0] = images[0].blur_image(0, 1)
img2 = images.fx("p*0.7+rand()*0.3")
img2.colorspace = GRAYColorspace
img3 = img2.emboss(0, 1)
images2 = Image.read("gradient:#FFFF1050-#3070A050"){
self.size = img3.columns.to_s + "x" + img3.rows.to_s
}
img4 = img3.composite(images2[0], 0, 0, OverCompositeOp)
img4.write("sample752a.png")
exit
元画像(sf2.jpg)
出力画像(sample752a.png)
動作環境
ruby1.8.6, rmagick2.7.1
関連項目
ImageMagickで画像とグラデーションのかかった砂地を合成する (convertコマンドでの同様の処理)
Saturday, January 17, 2009
groovyでバースト状にシェイプを塗りつぶす
groovyでバースト状にシェイプを塗りつぶすには、以下のコードを実行します。
出力画像(sample862a.png)
動作環境
Groovy1.6.0 Beta2, JDK1.6 Update11
関連項目
groovyで画像をさまざまなパターンで塗りつぶす
groovyで画像に水面の波紋のような効果をかける
groovyで任意の2色のグラデーションでバースト状に塗りつぶす (任意の2色グラデーションでバースト状に塗りつぶした場合)
import groovy.swing.j2d.*
def gr = new GraphicsRenderer()
gr.renderToFile("sample862a.png", 200, 200){
antialias("on")
dolphinShape( x:0, y:20, width:200, height:160,
fill:color("#ffffff"), borderColor:no ){
filters {
shapeBurst()
}
}
}
出力画像(sample862a.png)
動作環境
Groovy1.6.0 Beta2, JDK1.6 Update11
関連項目
groovyで画像をさまざまなパターンで塗りつぶす
groovyで画像に水面の波紋のような効果をかける
groovyで任意の2色のグラデーションでバースト状に塗りつぶす (任意の2色グラデーションでバースト状に塗りつぶした場合)
Friday, January 16, 2009
ImageMagickとPHPでランダムな光のストライプを作成する
Imagickでランダムな光のストライプを作成するには、以下のコードを実行します。
出力画像(sample738a.png)
関連項目
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>sample738(ImageMagick6.4.4)</title>
</head>
<body>
<?php
/* ランダムな光のストライプを生成する */
/* 画像幅 */
$sx=300;
/* 画像高さ */
$sy=200;
/* 最小半径 */
$minr=15;
/* 最大半径 */
$maxr=40;
/* 横中央線からの最大幅 */
$maxh=40;
/* 円間の最大x距離 */
$maxw=50;
/* 円間の最小x距離 */
$minw=20;
/* 光の色 */
$light = "#bbddffe0";
/* 最小ストライプ幅 */
$minsw = 3;
/* 最大ストライプ幅 */
$maxsw = 30;
/* ストライプ最小リサイズ幅 */
$minrs = -30;
/* ストライプ最大リサイズ幅 */
$maxrs = 90;
/* モーションブラー */
$mb = 30;
$im = new Imagick();
$im->newImage($sx, $sy, 'none');
$idraw = new ImagickDraw();
$idraw->setFillColor($light);
/* ランダムな円を描画 */
for($lx=0;$lx<$sx;){
/* 半径 */
$rad = rand($minr, $maxr);
/* 円中心のy座標 */
$cy = $sy/2+rand($maxh, $maxh*-1);
$idraw->ellipse($lx, $cy, $rad, $rad, 0,360);
$lx += rand($minw,$maxw);
}
$im->drawImage($idraw);
/* ぼかし */
$im->blurImage(0, 5, Imagick::CHANNEL_ALL);
/* ストライプ上に切り取って拡大&スクロール */
$im2 = new Imagick();
$im2->newImage($sx, $sy, 'white');
$im2->setImageMatte(true);
for($lx=0;$lx<$sx;){
/* ストライプ幅 */
$sw = rand($minsw,$maxsw);
/* 拡大前の切り取り幅 */
$dh = rand($minrs, $maxrs);
$ims = $im->clone();
$ims->cropImage($sw, $sy-$dh, $lx, $dh/2);
$ims->resizeImage($sw, $sy, imagick::FILTER_MITCHELL, 1);
$im2->compositeImage($ims, Imagick::COMPOSITE_DEFAULT, $lx, 0,
Imagick::CHANNEL_ALL);
$ims->destroy();
$lx += $sw;
}
$idraw2 = new ImagickDraw();
$idraw2->setStrokeColor('#000000');
$idraw2->line(0,100,300,100);
$im2->drawImage($idraw2);
$im2->motionBlurImage(0,$mb,90);
$im2->motionBlurImage(0,$mb,270);
$im2->writeImage('sample738a.png');
$idraw->destroy();
$im2->destroy();
$im->destroy();
?>
<img src="sample738a.png" />
</body>
</html>
出力画像(sample738a.png)
関連項目
ImageMagickとPHPで青白く輝く文字列を描画する
ImageMagickとPHPで、文字列の影に横線を入れる
groovyでアイスクリーム形を描画する
groovyでアイスクリーム形を描画するには、以下のコードを実行します。
出力画像(sample797a.png)
動作環境
Groovy1.6.0 Beta2, JDK1.6 Update11
関連項目
groovyで魚型を描画する
groovyでイルカの形を描画する
SVGRendererでアイスクリームを描画する (SVGRendererによる同様の処理)
import groovy.swing.j2d.*
def gr = new GraphicsRenderer()
gr.renderToFile("sample797a.png", 200, 200){
antialias("on")
iceCreamShape( x:0, y:40, width: 200, height:120,
fill: color("#bbddff"),
borderColor: color("#103080"),
borderWidth: 2
)
}
出力画像(sample797a.png)
動作環境
Groovy1.6.0 Beta2, JDK1.6 Update11
関連項目
groovyで魚型を描画する
groovyでイルカの形を描画する
SVGRendererでアイスクリームを描画する (SVGRendererによる同様の処理)
Thursday, January 15, 2009
JMagickで画像の色を減色する
JMagickで画像の色を減色するには、以下のコードを実行します。
元画像(sf.jpg)
出力画像(sample748a.gif)
関連情報
JMagickまとめ
ImageMagickで画像を減色する (convertコマンドによる同様の処理)
ImageMagickで画像を4色グレースケールの画像に減色する
import java.awt.*;
import magick.*;
public class JMagickTest47
{
public static void main(String args[])
throws MagickException
{
/* 画像の色数を減色する */
MagickImage mi = new MagickImage(new ImageInfo("sf.jpg"));
QuantizeInfo qi = new QuantizeInfo();
qi.setColorspace(ColorspaceType.RGBColorspace);
/* ディザあり */
qi.setDither(1);
/* 色数 */
qi.setNumberColors(32);
qi.setTreeDepth(0);
qi.setMeasureError(0);
mi.quantizeImage(qi);
mi.setFileName("sample748a.gif");
mi.writeImage(new ImageInfo());
}
}
元画像(sf.jpg)
出力画像(sample748a.gif)
関連情報
JMagickまとめ
ImageMagickで画像を減色する (convertコマンドによる同様の処理)
ImageMagickで画像を4色グレースケールの画像に減色する
groovyで画像を紙吹雪のようにばらばらにする
groovyで画像を紙吹雪のようにばらばらにするには、以下のコードを実行します。
元画像(sf.jpg)
出力画像(sample861a.png)
動作環境
Groovy1.6.0 Beta2, JDK1.6 Update11
関連項目
groovyで画像に放射ブラーをかける
groovyで画像に編み目模様をつける
import groovy.swing.j2d.*
def gr = new GraphicsRenderer()
gr.renderToFile("sample861a.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 {
shatter(centreX: 0.5, centreY:0.5,
rotation:10, transition: 0.3, tile:10,
iterations:20)
}
}
}
元画像(sf.jpg)
出力画像(sample861a.png)
動作環境
Groovy1.6.0 Beta2, JDK1.6 Update11
関連項目
groovyで画像に放射ブラーをかける
groovyで画像に編み目模様をつける
Wednesday, January 14, 2009
RMagickで画像を絵画調に変換する
RMagickで画像を絵画調に変換するには、以下のコードを実行します。
require 'RMagick'
include Magick
# 画像を絵画調に変換する
images = Image.read("sf2.jpg")
img2 = images[0].spread(1)
img3 = img2.median_filter(2)
img4 = img3.emboss(0, 1)
img4.write("sample751a.png")
exit
元画像(sf2.jpg)
出力画像(sample751a.png)
動作環境
ruby1.8.6, rmagick2.7.1
関連項目
ImageMagickで画像を絵画風に変換する (convertコマンドによる同様の処理)
require 'RMagick'
include Magick
# 画像を絵画調に変換する
images = Image.read("sf2.jpg")
img2 = images[0].spread(1)
img3 = img2.median_filter(2)
img4 = img3.emboss(0, 1)
img4.write("sample751a.png")
exit
元画像(sf2.jpg)
出力画像(sample751a.png)
動作環境
ruby1.8.6, rmagick2.7.1
関連項目
ImageMagickで画像を絵画風に変換する (convertコマンドによる同様の処理)
groovyで足型を描画する
groovyで足型を描画するには、以下のコードを実行します。
出力画像(sample796a.png)
動作環境
Groovy1.6.0 Beta2, JDK1.6 Update11
関連項目
groovyで魚型を描画する
groovyでイルカの形を描画する
groovyで蝶を描画する
SVGRendererで足形を描画する (SVGRendererでの同様の処理)
import groovy.swing.j2d.*
def gr = new GraphicsRenderer()
gr.renderToFile("sample796a.png", 200, 200){
antialias("on")
footShape( x:0, y:30, width:200, height:140,
fill: color("#bbddff"),
borderColor: color("#103080"),
borderWidth: 2
)
}
出力画像(sample796a.png)
動作環境
Groovy1.6.0 Beta2, JDK1.6 Update11
関連項目
groovyで魚型を描画する
groovyでイルカの形を描画する
groovyで蝶を描画する
SVGRendererで足形を描画する (SVGRendererでの同様の処理)
Tuesday, January 13, 2009
groovyで画像にスマート・ブラーをかける
groovyで画像にスマート・ブラーをかけるには、以下のコードを実行します。
元画像(sf.jpg)
出力画像(sample860a.png)
動作環境
Groovy1.6.0 Beta2, JDK1.6 Update11
関連項目
groovyで画像をさまざまなパターンで塗りつぶす
groovyで画像に水面の波紋のような効果をかける
import groovy.swing.j2d.*
def gr = new GraphicsRenderer()
gr.renderToFile("sample860a.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 {
// なだらかな所にぼかしをかける
smartBlur(threshold:30, hRadius:3, vRadius:3)
}
}
}
元画像(sf.jpg)
出力画像(sample860a.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>sample737(ImageMagick6.4.4)</title>
</head>
<body>
<?php
/* 画像を縮小、回転させて背景画像と重ねあわせる */
$im = new Imagick("sf.jpg");
/* 縦横1/2にリサイズ */
$im->resizeImage($im->getImageWidth()/2,
$im->getImageHeight()/2, imagick::FILTER_MITCHELL, 1);
/* 生じるスペースの部分に透明を指定して画像を回転 */
$im->rotateImage('none', -20);
$im2 = new Imagick("sf2.jpg");
$im2->compositeImage($im, Imagick::COMPOSITE_DEFAULT, 170, 10, Imagick::CHANNEL_ALL);
$im2->writeImage('sample737a.png');
$im2->destroy();
$im->destroy();
?>
<img src="sample737a.png" />
</body>
</html>
元画像1(sf.jpg)
元画像2(sf2.jpg)
出力画像(sample737a.png)
環境
Apache 2.2.8/PHP5.2.5/ImageMagick6.4.4
関連項目
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>sample737(ImageMagick6.4.4)</title>
</head>
<body>
<?php
/* 画像を縮小、回転させて背景画像と重ねあわせる */
$im = new Imagick("sf.jpg");
/* 縦横1/2にリサイズ */
$im->resizeImage($im->getImageWidth()/2,
$im->getImageHeight()/2, imagick::FILTER_MITCHELL, 1);
/* 生じるスペースの部分に透明を指定して画像を回転 */
$im->rotateImage('none', -20);
$im2 = new Imagick("sf2.jpg");
$im2->compositeImage($im, Imagick::COMPOSITE_DEFAULT, 170, 10, Imagick::CHANNEL_ALL);
$im2->writeImage('sample737a.png');
$im2->destroy();
$im->destroy();
?>
<img src="sample737a.png" />
</body>
</html>
元画像1(sf.jpg)
元画像2(sf2.jpg)
出力画像(sample737a.png)
環境
Apache 2.2.8/PHP5.2.5/ImageMagick6.4.4
関連項目
ImageMagickとPHPで画像を半透明にして重ね合わせる
ImageMagickとPHPで、画像に半透明角丸四角の枠をつける
Monday, January 12, 2009
JMagickでタイルパターンの文字列を描画する
JMagickでタイルパターンの文字列を描画するには、以下のコードを実行します。
パターン画像(pattern1.gif)
出力画像(sample747a.jpg)
関連情報
JMagickまとめ
import java.awt.*;
import magick.*;
public class JMagickTest46
{
public static void main(String args[])
throws MagickException
{
/* タイルパターンの文字列を描画する */
ImageInfo ii = new ImageInfo("xc:#fad759");
ii.setSize("300x80");
DrawInfo di = new DrawInfo(ii);
/* フォント指定(パスは環境によって変えてね) */
// di.setFont("c:\\winnt\\fonts\\msgothic.ttc");
di.setFont("Tahoma");
/* ポイントサイズ指定 */
di.setPointsize(50);
/* パターン設定指定 */
MagickImage tile = new MagickImage(
new ImageInfo("pattern1.gif")
);
di.setTile(tile);
/* Gravity設定 */
di.setGravity(GravityType.NorthWestGravity);
/* 位置指定 */
di.setGeometry("+5+0");
/* テキスト設定 */
di.setText("ImageMagick");
MagickImage mi = new MagickImage(ii);
mi.annotateImage(di);
mi.setFileName("sample747a.jpg");
/* jpegのqualityを90に設定して保存 */
ImageInfo oii = new ImageInfo();
oii.setQuality(90);
mi.writeImage(oii);
}
}
パターン画像(pattern1.gif)
出力画像(sample747a.jpg)
関連情報
JMagickまとめ
groovyで魚型を描画する
groovyで魚型を描画するには、以下のコードを実行します。
出力画像(sample795a.png)
動作環境
Groovy1.6.0 Beta2, JDK1.6 Update11
import groovy.swing.j2d.*
def gr = new GraphicsRenderer()
gr.renderToFile("sample795a.png", 200, 200){
antialias("on")
fishShape( x:0, y:40, width:200, height:120,
fill: color("#bbddff"),
borderColor: color("#103080"),
borderWidth: 2
)
}
出力画像(sample795a.png)
動作環境
Groovy1.6.0 Beta2, JDK1.6 Update11
Sunday, January 11, 2009
ImageMagickで横方向に擦れたような半透明画像に変換する
ImageMagickで横方向に擦れたような半透明画像に変換するには、以下のバッチファイルを実行します。
rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.4.4-Q16
%im%\convert.exe -size 200x200 xc:none -fill white -draw "roundrectangle 20,20,180,180,10,10" -matte -channel rgba -fx "(j%%4<3&&r!=0)?p*0.7:p*0.3" -spread 5 -motion-blur 0x10+0 -motion-blur 0x10+180 -matte -channel rgba sf.jpg -compose src_in -composite sample750a.png
元画像(sf.jpg)
出力画像(sample750a.png)
関連項目
ImageMagickで不規則な筋状の画像を生成する
ImageMagickで、文字列にモーションブラーをかける
rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.4.4-Q16
%im%\convert.exe -size 200x200 xc:none -fill white -draw "roundrectangle 20,20,180,180,10,10" -matte -channel rgba -fx "(j%%4<3&&r!=0)?p*0.7:p*0.3" -spread 5 -motion-blur 0x10+0 -motion-blur 0x10+180 -matte -channel rgba sf.jpg -compose src_in -composite sample750a.png
元画像(sf.jpg)
出力画像(sample750a.png)
関連項目
ImageMagickで不規則な筋状の画像を生成する
ImageMagickで、文字列にモーションブラーをかける
groovyで画像をさまざまなパターンで塗りつぶす
groovyで画像をさまざまなパターンで塗りつぶすには、以下のコードを実行します。
元画像(sf.jpg)
出力画像1(sample859a.png):指定の角度の線で塗りつぶし
出力画像2(sample859b.png):十字で
出力画像3(sample859c.png):円で塗りつぶし
出力画像4(sample859d.png):四角で塗りつぶし
動作環境
Groovy1.6.0 Beta2, JDK1.6 Update11
関連項目
groovyで画像にスタンプフィルタをかける
groovyで画像を感光させたように加工する
groovyで画像を2値化する
import groovy.swing.j2d.*
def gr = new GraphicsRenderer()
gr.renderToFile("sample859a.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 {
smear(shape:smearLines,
density:0.8, distance:8, angle:10)
}
}
}
gr.renderToFile("sample859b.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 {
smear(shape:smearCrosses,
density:0.8, distance:8, angle:10)
}
}
}
gr.renderToFile("sample859c.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 {
smear(shape:smearCircles,
density:0.8, distance:8, angle:10)
}
}
}
gr.renderToFile("sample859d.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 {
smear(shape:smearSquares,
density:0.8, distance:8, angle:10)
}
}
}
元画像(sf.jpg)
出力画像1(sample859a.png):指定の角度の線で塗りつぶし
出力画像2(sample859b.png):十字で
出力画像3(sample859c.png):円で塗りつぶし
出力画像4(sample859d.png):四角で塗りつぶし
動作環境
Groovy1.6.0 Beta2, JDK1.6 Update11
関連項目
groovyで画像にスタンプフィルタをかける
groovyで画像を感光させたように加工する
groovyで画像を2値化する