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)