rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.4.2-Q16
%im%\convert.exe sf.jpg -background white -gravity south -splice 0x4 -virtual-pixel background -fx "i%%16<8?p[0,-4]:p" sample513a.png
元画像(sf.jpg)
出力画像(sample513a.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>sample512(ImageMagick6.4.2)</title>
</head>
<body>
<?php
/* 座標を少しずつずらして、複数のベジェ曲線を描画 */
$im = new Imagick();
$im->newPseudoImage(200, 200, "xc:white");
$idraw = new ImagickDraw();
$idraw->setStrokeColor('#88bbff50');
$idraw->setFillColor('none');
$ct=10;
for($ind=0;$ind<$ct;$ind++){
$points[0] = array(
'x' => 30+5*$ind,
'y' => 200
);
$points[1] = array(
'x' => 0,
'y' => 100
);
$points[2] = array(
'x' => 0,
'y' => 20
);
$points[3] = array(
'x' => 200,
'y' => 100+3*$ind
);
$idraw->bezier($points);
}
$im->drawImage($idraw);
$im->writeImage('sample512a.jpg');
/* $im->clear(); 2008/09/30追記:destroyと同様にClearMagicWandを呼ぶので必要なし */
$im->destroy();
?>
<img src="sample512a.jpg" />
</body>
</html>
import java.awt.*;
import java.awt.geom.*;
import java.awt.image.*;
import java.io.*;
import java.util.*;
import javax.imageio.*;
public class Java2DTest10
{
public static void main(String args[])
throws Exception
{
/* Java2Dで画像をぼかす */
BufferedImage img = ImageIO.read(new File("sf.jpg"));
BufferedImage img2 = new BufferedImage(
img.getWidth(), img.getHeight(), BufferedImage.TYPE_INT_RGB
);
Graphics2D gr = img2.createGraphics();
gr.drawImage(img,0,0,null);
gr.dispose();
float kernel[] = new float[3*3];
for(int li=0;li<3*3;li++){
kernel[li] = 1F/(3*3);
}
BufferedImageOp bio = new ConvolveOp(new Kernel(3, 3, kernel),
ConvolveOp.EDGE_NO_OP, new RenderingHints(new HashMap()));
BufferedImage img3 = bio.filter(img2, null);
ImageIO.write(img3, "jpg", new File("sample511a.jpg"));
}
}
import java.io.*;
import java.awt.*;
import java.awt.geom.*;
import java.awt.image.*;
import javax.imageio.*;
public class Java2DTest9
{
public static void main(String args[])
throws Exception
{
/* 画像を角丸四角で切り取る */
BufferedImage img = ImageIO.read(new File("sf.jpg"));
/* 角丸四角の画像を作成 */
BufferedImage img2 = new BufferedImage(
img.getWidth(), img.getHeight(), BufferedImage.TYPE_INT_ARGB
);
Graphics2D gr = img2.createGraphics();
gr.setColor(new Color(1F, 1F, 1F, 1F));
RoundRectangle2D rr = new RoundRectangle2D.Double(
0.0, 0.0, img.getWidth()-1, img.getHeight()-1, 40.0, 40.0);
gr.fill(rr);
/* 切り取り */
gr.setComposite(AlphaComposite.SrcIn);
gr.drawImage(img,0,0,null);
gr.dispose();
/* 白色背景画像を作成 */
BufferedImage img3 = new BufferedImage(
img.getWidth(), img.getHeight(), BufferedImage.TYPE_INT_RGB
);
Graphics2D gr2 = img3.createGraphics();
gr2.setColor(new Color(255, 255, 255));
gr2.fillRect(0, 0, img.getWidth(), img.getHeight());
/* 切り取った画像と合成 */
gr2.drawImage(img2,0,0,null);
gr2.dispose();
ImageIO.write(img3, "jpg", new File("sample510a.jpg"));
}
}
import magick.*;
public class JMagickTest41
{
public static void main(String args[])
throws MagickException
{
/* バンド状のグラデーションを描画する */
ImageInfo ii = new ImageInfo("gradient:#FFFF10FF-#3070A0FF");
ii.setSize("1x10");
MagickImage mi = new MagickImage(ii);
/* フィルタタイプをPointFilterに設定 */
mi.setFilter(FilterType.PointFilter);
MagickImage mi2 = mi.scaleImage(150, 150);
mi2.setFileName("sample508a.jpg");
mi2.writeImage(new ImageInfo());
}
}
出力画像(sample508a.jpg)
import java.io.*;
import java.awt.*;
import java.awt.geom.*;
import java.awt.image.*;
import javax.imageio.*;
public class Java2DTest8
{
public static void main(String args[])
throws Exception
{
/* 画像上に文字列を描画する */
BufferedImage img = ImageIO.read(new File("sf.jpg"));
Graphics2D gr = img.createGraphics();
gr.setColor(new Color(0xbb, 0xdd, 0xff));
gr.setFont(new Font(Font.SANS_SERIF, Font.PLAIN, 20));
gr.drawString("San Francisco", 10, 30);
gr.dispose();
ImageIO.write(img, "png", new File("sample504a.png"));
}
}
import java.io.*;
import java.awt.*;
import java.awt.geom.*;
import java.awt.image.*;
import javax.imageio.*;
public class Java2DTest7
{
public static void main(String args[])
throws Exception
{
/* 画像をビデオ風に変換する */
BufferedImage img = ImageIO.read(new File("sf.jpg"));
WritableRaster wr = img.getRaster();
int buf[] = new int[wr.getNumDataElements()];
for(int ly=1;ly<wr.getHeight();ly+=2){
for(int lx=0;lx<wr.getWidth();lx++){
wr.getPixel(lx, ly, buf);
buf[0] = buf[0]/2;
buf[1] = buf[1]/2;
buf[2] = buf[2]/2;
wr.setPixel(lx, ly, buf);
}
}
ImageIO.write(img, "png", new File("sample502a.png"));
}
}
require 'RMagick'
include Magick
# 画像を2値化して切り取り
img1 = ImageList.new("sample5.jpg")
img2 = img1.threshold(QuantumRange*0.84)
img3 = img2.transparent("white");
img4 = ImageList.new("sample5.jpg")
img4.alpha = ActivateAlphaChannel
img5 = img4.composite(img3, 0, 0, DstInCompositeOp);
# 影付け
img5.background_color = "black"
img6 = img5.shadow(3, 3, 3, 0.4)
img7 = img6.composite(img5, 0, 0, OverCompositeOp);
# 白背景と合成
bg = Image.new(img7.columns, img7.rows){
self.background_color='white'
}
img8 = bg.composite(img7, 0, 0, OverCompositeOp);
img8.write("sample501a.png")
exit
sample501a.png
)
import java.io.*;
import java.awt.*;
import java.awt.geom.*;
import java.awt.image.*;
import javax.imageio.*;
public class Java2DTest6
{
public static void main(String args[])
throws Exception
{
/* グラデーションの角丸四角の画像を生成 */
BufferedImage img = new BufferedImage(
150, 150, BufferedImage.TYPE_INT_BGR
);
Graphics2D gr = img.createGraphics();
/* 背景を灰色で塗りつぶし */
gr.setColor(Color.LIGHT_GRAY);
gr.fillRect(0, 0, 150, 150);
/* グラデーションを作成 */
GradientPaint gp = new GradientPaint(
0, 0,
new Color(0xbb, 0xdd, 0xff),
0, 150,
new Color(0xff, 0xff, 0xff)
);
gr.setPaint(gp);
/* 角丸四角を描画 */
RoundRectangle2D rr = new RoundRectangle2D.Double(
10.0, 10.0, 130.0, 130.0, 20.0, 20.0);
gr.fill(rr);
gr.dispose();
ImageIO.write(img, "png", new File("sample498a.png"));
}
}
import java.io.*;
import java.awt.*;
import java.awt.image.*;
import javax.imageio.*;
public class Java2DTest5
{
public static void main(String args[])
throws Exception
{
/* 画像の重ね合わせ */
BufferedImage img = ImageIO.read(new File("sf.jpg"));
BufferedImage img2 = ImageIO.read(new File("sample6.jpg"));
Graphics2D gr = img.createGraphics();
gr.drawImage(img2,10,10,null);
gr.dispose();
ImageIO.write(img, "jpg", new File("sample496a.jpg"));
}
}