Saturday, January 02, 2010

PyWin32とImageMagickで画像の明るさを変更する

PyWin32とImageMagickで画像の明るさを変更するには、以下のコードを実行します。


# coding=UTF-8
import win32com.client

im = win32com.client.Dispatch("ImageMagickObject.MagickImage.1")
# 画像を暗くする
im.convert("sf.jpg", "-evaluate", "multiply", "0.5", "sample1412a.png")
# 画像を明るくする
im.convert("sf.jpg", "-evaluate", "multiply", "1.3", "sample1412b.png")


元画像(sf.jpg)


出力画像1(sample1412a.png)


出力画像2(sample1412b.png)


動作環境
Python3.1.1, Python for Windows Extensions (Build 214), ImageMagick6.5.5

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

ProcessingとJava Image Filters(pixels)を使用して水面のような画像を生成するには、以下のコードを実行します。Java Image Filtersはhttps://pixels.dev.java.net/servlets/ProjectDocumentListから pixels-core-2.1.3-SNAPSHOT.jarをダウンロードしてSketchのフォルダのcodeサブフォルダに配置するか、 Sketch->Add FilesメニューからSketchに追加します。


// キャンバスサイズ
PImage img = new PImage(200,200);
size(img.width, img.height);
// 水面のような画像を生成する
CausticsFilter cf = new CausticsFilter();
// スケール
cf.setScale(32f);
// 明るさ
cf.setBrightness(15);
// 乱れ
cf.setTurbulence(0.9f);
// effect量
cf.setAmount(1.1f);
// 拡散
cf.setDispersion(1f);
// 時間
cf.setTime(0.1f);
// サンプル
cf.setSamples(10);
PImage img2 = new PImage(cf.filter((BufferedImage)img.getImage(), null));
image(img2, 0, 0);
// ファイル保存
save("sample1453a.png");


出力画像(sample1453a.png)
ProcessingとJava Image Filters(pixels)を使用して作成した水面のような画像

動作環境
Processing 1.0.7

Friday, January 01, 2010

PyWin32とImageMagickで文字列をパターン画像で塗りつぶす

PyWin32とImageMagickで文字列をパターン画像で塗りつぶすには、以下のコードを実行します。


# coding=UTF-8
import win32com.client

im = win32com.client.Dispatch("ImageMagickObject.MagickImage.1")
im.convert("-size", "240x80", "xc:#fad759", "-tile",
"pattern1.gif", "-pointsize", "70", "-draw",
"text 0,60 Sample", "sample1411a.png")


パターン画像(pattern1.gif)


出力画像(sample1411a.png)
パターン画像で塗りつぶした文字列

動作環境
Python3.1.1, Python for Windows Extensions (Build 214), ImageMagick6.5.5

GfxBuilderで市松模様に画像をタイル配置する

GfxBuilderで市松模様に画像をタイル配置するには、以下のコードを実行します。


import griffon.builder.gfx.render.*
import javax.imageio.*;

img1 = ImageIO.read(new File("flower1.png"))
img2 = ImageIO.read(new File("flower2.png"))
gr = new GfxRenderer()
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("sample1427a.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)


出力画像(sample1427a.png)
GfxBuilderで市松模様にタイル配置した画像

動作環境
Groovy1.6.5, JDK6 Update16

Thursday, December 31, 2009

PyWin32とImageMagickで渦巻き模様を生成する

PyWin32とImageMagickで渦巻き模様を生成するには、以下のコードを実行します。


# coding=UTF-8
import win32com.client

im = win32com.client.Dispatch("ImageMagickObject.MagickImage.1")
im.convert("-size", "1x1", "xc:white", "xc:orange", "-append",
"-filter", "point", "-resize", "400x400!", "-swirl", "2560",
"-crop", "200x200+100+100", "sample1410a.png")


出力画像(sample1410a.png)
PyWin32とImageMagickで生成した渦巻き模様

動作環境
Python3.1.1, Python for Windows Extensions (Build 214), ImageMagick6.5.5

Processingとjsilhouetteを使用してクロスを描画する

Processingとjsilhouetteを使用してクロスを描画するには、以下のコードを実行します。jsilhouetteはhttp://code.google.com/p/jsilhouette/から jsilhouette-geom-0.3.1.jarをダウンロードしてSketchのフォルダのcodeサブフォルダに配置するか、 Sketch->Add FilesメニューからSketchに追加します。


// キャンバスサイズ
size(200, 200);
background(#f8f8ff);
// 描画用PGraphics作成
PGraphicsJava2D g2d=(PGraphicsJava2D)createGraphics(200, 200, JAVA2D);
g2d.beginDraw();
Graphics2D gr = g2d.g2;
gr.setColor(new Color(#ffcc00));
// クロスを描画
gr.fill(new Cross(100, 100, 80, 40, 0, 0.25f));
g2d.endDraw();

image(g2d, 0, 0);
// ファイル保存
save("sample1483a.png");


出力画像(sample1483a.png)
Processingとjsilhouetteを使用して描画したクロス

動作環境
Processing 1.0.7

Wednesday, December 30, 2009

PyWin32とImageMagickで画像を滲んだ感じに加工する

PyWin32とImageMagickで画像を滲んだ感じに加工するには、以下のコードを実行します。


# coding=UTF-8
import win32com.client

im = win32com.client.Dispatch("ImageMagickObject.MagickImage.1")
im.convert("sf2.jpg", "-colorspace", "gray", "(", "sf2.jpg",
"-spread", "4", "-blur", "0x1", ")", "-compose", "overlay",
"-composite", "sample1409a.png")


元画像(sf2.jpg)


出力画像(sample1409a.png)
PyWin32とImageMagickで滲んだ感じに加工した画像

動作環境
Python3.1.1, Python for Windows Extensions (Build 214), ImageMagick6.5.5

ProcessingとJava Image Filters(pixels)を使用して画像に水面のようなゆらぎ効果をつける

ProcessingとJava Image Filters(pixels)を使用して画像に水面のようなゆらぎ効果をつけるには、以下のコードを実行します。Java Image Filtersはhttps://pixels.dev.java.net/servlets/ProjectDocumentListから pixels-core-2.1.3-SNAPSHOT.jarをダウンロードしてSketchのフォルダのcodeサブフォルダに配置するか、 Sketch->Add FilesメニューからSketchに追加します。


// キャンバスサイズ
PImage img = loadImage("sf2.jpg");
size(img.width, img.height);
// 水面のようなゆらぎ効果をつける
SwimFilter sf = new SwimFilter();
// 効果の量
sf.setAmount(10f);
// スケール
sf.setScale(32f);
// 引き伸ばし
sf.setStretch(10f);
// アングル
sf.setAngle(10f/180f*ImageMath.PI);
// 乱れ
sf.setTurbulence(1f);
// 時間
sf.setTime(0.1f);
PImage img2 = new PImage(sf.filter((BufferedImage)img.getImage(), null));
image(img2, 0, 0);
// ファイル保存
save("sample1452a.png");


元画像(sf2.jpg)


出力画像(sample1452a.png)
ProcessingとJava Image Filters(pixels)を使用して水面のようなゆらぎ効果をつけた画像

動作環境
Processing 1.0.7

Tuesday, December 29, 2009

PyWin32とImageMagickで横方向に擦れたような半透明画像に変換する

PyWin32とImageMagickで横方向に擦れたような半透明画像に変換するには、以下のコードを実行します。


# coding=UTF-8
import win32com.client

im = win32com.client.Dispatch("ImageMagickObject.MagickImage.1")
im.convert("-size", "200x200", "xc:none", "-fill", "white",
"-draw", "roundrectangle 20,20,180,180,10,10",
"-alpha", "activate", "-channel", "rgba", "-fx",
"(j%4<3&&r!=0)?p*0.7:p*0.3", "-spread", "5", "-motion-blur",
"0x10+0", "-motion-blur", "0x10+180", "-alpha", "activate",
"-channel", "rgba", "sf.jpg", "-compose", "src_in",
"-composite", "sample1408a.png")


元画像(sf.jpg)


出力画像(sample1408a.png)
PyWin32とImageMagickで横方向にこすれたような半透明に加工した画像

動作環境
Python3.1.1, Python for Windows Extensions (Build 214), ImageMagick6.5.5

Monday, December 28, 2009

PyWin32とImageMagickで付箋紙を描画する

PyWin32とImageMagickで付箋紙を描画するには、以下のコードを実行します。


# coding=UTF-8
import win32com.client

im = win32com.client.Dispatch("ImageMagickObject.MagickImage.1")
im.convert("-size", "200x200", "gradient:#f4f070-#e0cc4c",
"-font", "Comic-Sans-MS-Bold", "-pointsize", "20", "-background",
"none", "-gravity", "center", "-annotate", "0",
"To Do\n4:30 Meeting.", "-gravity", "northwest",
"-alpha", "activate", "-channel", "rgba", "-background", "none",
"-splice", "20x0", "-virtual-pixel", "background", "-fx",
"p{i+j^2*0.0005,j}", "-shear", "0x3", "(", "-size", "200x200",
"xc:black", "-background", "none", "-splice", "20x0",
"-shear", "0x3", "-shadow", "60x3+3+5", ")", "(", "-size",
"200x200", "xc:white", ")", "-swap", "0,2", "-mosaic",
"sample1407a.png")


出力画像(sample1407a.png)
PyWin32とImageMagickで描画した付箋紙

動作環境
Python3.1.1, Python for Windows Extensions (Build 214), ImageMagick6.5.5

GfxBuilderで点線の角丸四角を描画する

GfxBuilderで点線の角丸四角を描画するには、以下のコードを実行します。


import griffon.builder.gfx.render.*

def gr = new GfxRenderer()
gr.renderToFile("sample1426a.png", 200, 200){
antialias("on")
rect( x: 10, y: 10, width: 180, height: 180,
arcWidth: 20, arcHeight:20,
borderColor: color("#aaccff")){
basicStroke(dash: (float[])[4f,4f], width:2)
}
}


出力画像(sample1426a.png)
GfxBuilderで描画した点線の角丸四角

動作環境
Groovy1.6.5, JDK6 Update16

Sunday, December 27, 2009

PyWin32とImageMagickで、画像の端がちぎられたようなスケッチ調の画像に変換する

PyWin32とImageMagickで、画像の端がちぎられたようなスケッチ調の画像に変換するには、以下のコードを実行します。


# coding=UTF-8
import win32com.client

im = win32com.client.Dispatch("ImageMagickObject.MagickImage.1")
im.convert("-size", "200x200", "xc:none", "-fill", "white",
"-draw", "rectangle 10,10 189,189", "-spread", "5",
"-median", "2", "(", "sf.jpg", "-sepia-tone", "80%", ")",
"-compose", "src_in", "-composite", "xc:white", "+swap",
"-compose", "src-over", "-composite",
"-sketch", "0x10+120",
"sample1406a.png")


元画像(sf.jpg)


出力画像(sample1406a.png)
PyWin32とImageMagickで端がちぎれたスケッチ風に加工した画像

動作環境
Python3.1.1, Python for Windows Extensions (Build 214), ImageMagick6.5.5

ProcessingとJava Image Filters(pixels)を使用して金属風の画像を作成する

ProcessingとJava Image Filters(pixels)を使用して金属風の画像を作成するには、以下のコードを実行します。Java Image Filtersはhttps://pixels.dev.java.net/servlets/ProjectDocumentListから pixels-core-2.1.3-SNAPSHOT.jarをダウンロードしてSketchのフォルダのcodeサブフォルダに配置するか、 Sketch->Add FilesメニューからSketchに追加します。


// キャンバスサイズ
PImage img = new PImage(200, 200);
size(img.width, img.height);
// 金属風の画像生成
BrushedMetalFilter bmf = new BrushedMetalFilter(
0xffb0b0b4, /* 金属の色 */
20, /* 水平方向ぼかしのサイズ */
0.15f, /* ノイズの量 */
false, /* モノクロームの場合true */
0.1f /* 輝きの量 */
);
PImage img2 = new PImage(bmf.filter((BufferedImage)img.getImage(), null));
image(img2, 0, 0);
// ファイル保存
save("sample1451a.png");


出力画像(sample1451a.png)
ProcessingとJava Image Filters(pixels)を使用して作成した金属風画像

動作環境
Processing 1.0.7