rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.5.7-Q16
rem 文字間のスペースを指定
%im%\convert.exe -fill #5577ee -font Tahoma-Bold -pointsize 25
-background none -kerning 15 "label:IMAGE MAGICK" sample1432a.png
出力画像(sample1432a.png)

動作環境
ImageMagick 6.5.7
rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.5.7-Q16
rem 単語間のスペースを指定
%im%\convert.exe -fill #5577ee -font Tahoma -pointsize 25
-background none -interword-spacing 50
"label:Image Magick" sample1431a.png
rem 行間のスペースを指定
%im%\convert.exe -fill #5577ee -font
C:\\Windows\\Fonts\\MSGOTHIC.TTC -pointsize 25
-background none -interline-spacing 30
"label:@message.txt" sample1431b.png
日本語の
文字列


<!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>sample1150(ImageMagick6.5.2)</title>
</head>
<body>
<?php
/* メッセージ(UTF-8でファイルを保存する) */
$msg = "ImageMagick";
/* 上下余白 */
$padtop = 10;
$padbottom = 40;
/* 看板余白 */
$padx = 5;
$pady = 10;
/* 棒の幅 */
$polew = 10;
/* 塗りつぶし色 */
$fc = "#7799ff";
/* 文字色 */
$tc = "white";
$im = new Imagick();
$idraw = new ImagickDraw();
/* フォント設定 */
//$idraw->setFont('C:\\Windows\\Fonts\\MSGOTHIC.TTC');
$idraw->setFont('Tahoma');
/* フォントサイズ設定 */
$idraw->setFontSize(30);
/* 文字列のサイズ取得 */
$metrics = $im->queryFontMetrics($idraw, $msg);
$tw = $metrics["textWidth"];
$th = $metrics["textHeight"];
$td = $metrics["descender"];
$im->newPseudoImage(
$tw+$padx*2,
$th+$pady*2+$padtop+$padbottom, "xc:none");
/* 看板 */
$idraw->setFillColor($fc);
$idraw->rectangle(0,$padtop,
$tw+$padx*2-1,
$padtop+$th+$pady*2-1);
$idraw->setStrokeColor($fc);
$idraw->setStrokeWidth($polew);
$idraw->rectangle(($tw+$padx*2)/2,0,
($tw+$padx*2)/2,
$padtop+$th+$pady*2+$padbottom);
$idraw->setFillColor($tc);
$idraw->setStrokeColor($tc);
$idraw->setStrokeWidth(0);
$idraw->annotation($padx, $padtop+$pady+$th+$td, $msg);
$im->drawImage($idraw);
$im->setImageVirtualPixelMethod(Imagick::VIRTUALPIXELMETHOD_TRANSPARENT);
$im->setImageMatte(true);
$args2 = array($im->getImageWidth()/2,
$im->getImageHeight(),1,rand(-3,3));
//$im->distortImage(Imagick::DISTORTION_SCALEROTATETRANSLATE,
// $args2, false);
// ScaleRotateTranslateDistortion in distort.h
$im->distortImage(3, $args2, true);
$im->writeImage('sample1150a.png');
$idraw->destroy();
$im->destroy();
?>
<img src="sample1150a.png" /><br />
</body>
</html>
import groovy.swing.j2d.*
def gr = new GraphicsRenderer()
gr.renderToFile("sample1144a.png", 240, 80){
antialias("on")
font(new java.awt.Font('Tahoma', java.awt.Font.BOLD, 64))
text( x:0, y:0,
text: "Groovy",
fill: color("#4466ff"),
borderColor: no,
){
filters {
mosaic(blockSize: 4)
}
}
}
import groovy.swing.j2d.*
sw = 220
sh = 70
gr = new GraphicsRenderer()
img = gr.render(sw, sh){
background(color: color("#ffffff"))
rect(x:0, y:0, width: sw, height: sh){
filters {
scratch(angle:10, angleVariation:0.8,
color: color("#000000"), density:0.7,
length:0.5, width:0.5, seed:2009)
}
}
}
gr.renderToFile("sample1130a.png", sw, sh){
antialias("on")
background(color: color("#000000"))
font(new java.awt.Font('Tahoma', java.awt.Font.BOLD, 60))
text( x:0, y:0, text: "Groovy", borderColor:no){
texturePaint(x: 0, y: 0, image: img )
}
}
import java.awt.*
import groovy.swing.j2d.swf.*
def gr = new SWFRenderer()
gr.renderToFile("sample1044a.swf", 200, 200){
font(new java.awt.Font('MS ゴシック', java.awt.Font.BOLD, 60))
text( x:0, y:70,
text: "日本語",
fill: new Color(0xbb, 0xdd, 0xff, 0xff),
borderColor: new Color(0x11, 0x33, 0x77, 0xff) )
}
// SWFRenderer unsupported operation: fontとメッセージがでるが、
// font指定は効いているようみたい。。。

import java.util.*;
import org.im4java.core.*;
import org.im4java.process.*;
// im4java-0.98.0-bin.tar.bz2を解凍してim4java-0.98.0.jarはclasspathに通す
public class Im4java26
{
public static void main(String args[])
throws Exception
{
try
{
// ConvertCmd convert = new ConvertCmd();
ImageCommand convert = new WindowsConvertCmd();
IMOperation op = new IMOperation();
op.size(200, 200);
op.addImage("xc:white");
op.font("Tahoma");
op.pointsize(50);
op.gravity("center");
op.fill("#7799ff");
op.draw("text 0,0 'im4java'");
op.addImage("sample1120a.png");
convert.run(op);
}
catch(CommandException cex)
{
System.out.println(cex.getErrorText());
cex.printStackTrace();
}
}
// im4java 0.98
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");
*/
}
}
}


require 'RMagick'
include Magick
images = ImageList.new
images.new_image(200, 40){
self.background_color = "none"
}
dr = Draw.new
dr.fill = "#aaccf8"
# フォント
dr.font = "Tahoma"
# ポイントサイズ
dr.pointsize = 30
dr.gravity = CenterGravity
dr.text(0, 0, "ImageMagick")
dr.draw(images)
images[0] = images.blur_channel(0,1,AllChannels)
images2 = ImageList.new()
images2.read("plasma:fractal"){
self.size = "200x40"
}
images2.alpha = ActivateAlphaChannel
images2.colorspace = GRAYColorspace
images2[0] = images2.modulate(0.8, 1, 1).
blur_channel(0,3,AllChannels)
images2[0] = images2.fx("r", AlphaChannel)
images.composite(images2, CenterGravity, 0, 0,
DstOutCompositeOp).write("sample1146a.png")

import groovy.swing.j2d.svg.*
gr = new SVGRenderer()
gr.renderToFile("sample983a.svg", 200, 200){
xpath(borderColor:color("red")){
textStroke(text:"Groovy Groovy Groovy Groovy Groovy Groovy Groovy !!!",
font: new java.awt.Font('Tahoma', java.awt.Font.PLAIN, 20)
);
xmoveTo(x:180, y:100)
xarcTo(angle:180, largeArc: true, sweep:true, rx:80, ry:80, x:20, y:100)
xarcTo(angle:180, largeArc: true, sweep:true, rx:80, ry:80, x:180, y:100)
}
circle( cx: 100, cy: 100, radius:60, borderColor:color("orange")){
textStroke(text:"Groovy Groovy Groovy Groovy Groovy !!!",
font: new java.awt.Font('Tahoma', java.awt.Font.PLAIN, 20)
);
}
}

import groovy.swing.j2d.svg.*
gr = new SVGRenderer()
gr.renderToFile("sample982a.svg", 200, 200){
image(file: "sf.jpg")
font(new java.awt.Font('Tahoma', java.awt.Font.BOLD, 26))
text( x:10, y:100,
text: "San Francisco",
fill: color("#ffffff").derive(alpha: 0x80),
borderColor: color("#ffffff").derive(alpha: 0xf0),
borderWidth: 1
)
}

<!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>sample1106(ImageMagick6.5.2)</title>
</head>
<body>
<?php
/* メッセージ(UTF-8でファイルを保存する) */
$msg = "サンプル";
/* 余白 */
$padx = 20;
$pady = 5;
/* 枠の色 */
$bc = "#d0d0d0ff";
/* 塗りつぶし色 */
$fc = "#00000080";
/* 文字色 */
$tc = "white";
$im = new Imagick();
$idraw = new ImagickDraw();
/* フォント設定 */
$idraw->setFont('C:\\Windows\\Fonts\\MSGOTHIC.TTC');
/* フォントサイズ設定 */
$idraw->setFontSize(30);
/* gravity設定 */
$idraw->setGravity(Imagick::GRAVITY_CENTER);
/* 文字列のサイズ取得 */
$metrics = $im->queryFontMetrics($idraw, $msg);
$im->newPseudoImage($metrics["textWidth"]+$padx*2,
$metrics["textHeight"]+$pady*2, "xc:none");
/* 角丸四角 */
$idraw->setFillColor($fc);
$idraw->setStrokeColor($bc);
$idraw->roundrectangle(0,0,
$metrics["textWidth"]+$padx*2-1,
$metrics["textHeight"]+$pady*2-1,
10,10);
/* 文字色 */
$idraw->setFillColor($tc);
$idraw->setStrokeColor($tc);
$idraw->annotation(0, 0, $msg);
$im->drawImage($idraw);
$im->writeImage('sample1106a.png');
$im2 = new Imagick("sf.jpg");
$im2->compositeImage($im,
Imagick::COMPOSITE_OVER, 20, 100, Imagick::CHANNEL_ALL);
$im2->writeImage('sample1106b.png');
$idraw->destroy();
$im2->destroy();
$im->destroy();
?>
<img src="sample1106a.png" /><br />
<img src="sample1106b.png" /><br />
</body>
</html>


<title>sample1100(ImageMagick6.5.2)</title>
</head>
<body>
<?php
/* 表示文字列 */
$message_string = "ImageMagick";
/* 文字色 */
$fc = "#103070";
/* 円の色 */
$cc = "#bbddff";
/* ブロック幅・高さ */
$bw = 40;
$bh = 40;
/* 円半径サイズ */
$crx = 18;
$cry = 18;
/* 文字サイズ */
$ps = 25;
$images = new Imagick();
for($sl=0;$sl<strlen($message_string);$sl++){
$im = new Imagick();
$im->newPseudoImage($bw, $bh, "xc:none");
$idraw = new ImagickDraw();
/* 円描画 */
$idraw->setFillColor($cc);
$idraw->ellipse($bw/2, $bh/2, $crx,
$cry, 0, 360);
/* 文字色設定 */
$idraw->setFillColor($fc);
$im->drawImage($idraw);
/* フォント設定 */
$idraw->setFont('Tahoma-Bold');
/* フォントサイズ設定 */
$idraw->setFontSize($ps);
$idraw->setGravity(Imagick::GRAVITY_CENTER);
$im->annotateImage($idraw, 0, 0, 0,
substr($message_string,$sl,1));
$images->addImage($im);
$idraw->destroy();
$im->destroy();
}
$images->setImageIndex(0);
$im2 = $images->appendImages(false);
$im2->spreadImage(1);
$im2->medianFilterImage(1);
$im2->writeImage('sample1100a.png');
$images->destroy();
$im2->destroy();
?>
<img src="sample1100a.png" /><br />
</body>
</html>

<!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>sample1095(ImageMagick6.5.2)</title>
</head>
<body>
<?php
$im = new Imagick();
$im->newImage(300, 50, 'none');
$im->setImageMatte(true);
$idraw = new ImagickDraw();
$idraw->setFillColor('#ffffff');
/* フォント設定 */
$idraw->setFont('Arial');
/* フォントサイズ設定 */
$idraw->setFontSize(43);
/* gravity設定 */
$idraw->setGravity(Imagick::GRAVITY_NORTH);
/* antialiasをoff*/
$idraw->setStrokeAntialias(false);
/* 文字列描画 */
$idraw->annotation(0, 0, "ImageMagick");
$im->drawImage($idraw);
$im2 = new Imagick();
$im2->newPseudoImage(1, 6, 'gradient:#3070A0FF-#FFFF10FF');
$im2->resizeImage(300,50,Imagick::FILTER_POINT,1);
$im->compositeImage($im2, Imagick::COMPOSITE_IN, 0, 0,
Imagick::CHANNEL_ALL);
$im->writeImage('sample1095a.png');
$im2->destroy();
$idraw->destroy();
$im->destroy();
?>
<img src="sample1095a.png" />
</body>
</html>

import groovy.swing.j2d.svg.*
gr = new SVGRenderer()
gr.renderToFile("sample961a.svg", 200, 200){
font(new java.awt.Font('MS 明朝', java.awt.Font.BOLD, 60))
text( x:0, y:70,
text: "日本語",
fill: color("#bbddff"),
borderColor: color("#103080"),
borderWidth: 1
)
}

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");
*/
}
}
}


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")
}
}



