Showing posts with label 切り取り. Show all posts
Showing posts with label 切り取り. Show all posts

Wednesday, July 22, 2009

groovyで画像の角を切り落とす

groovyで画像の角を切り落とすには、以下のコードを実行します。


import javax.imageio.*;
import groovy.swing.j2d.*

// 角のサイズ
dx = 20
dy = 20
img = ImageIO.read(new File("sf.jpg"))
def gr = new GraphicsRenderer()
gr.renderToFile("sample1143a.png",
img.width, img.height){
antialias("on")
polygon(
points: [dx,0, img.width-dx-1,0,
img.width-1,dy,
img.width-1,img.height-dy-1,
img.width-dx-1, img.height-1,
dx, img.height-1,
0, img.height-dy-1,
0, dy],
borderColor: no
){
texturePaint(x: 0, y: 0, image: img )
}
}


元画像(sf.jpg)


出力画像(sample1143a.png)
groovyで角を切り落とした画像

Monday, July 06, 2009

RMagickで回転したタイル配置の角丸四角で画像を切り取る

RMagickで回転したタイル配置の角丸四角で画像を切り取るには、以下のコードを実行します。


require 'RMagick'
include Magick

images = ImageList.new("sf.jpg")
images.alpha = ActivateAlphaChannel

images2 = ImageList.new
images2.new_image(20, 20){
self.background_color = "none"
}
dr = Draw.new
dr.fill = "white"
dr.roundrectangle(0,0,18,18,4,4);
dr.draw(images2)

images3 = ImageList.new()
images3.new_image(images.columns, images.rows,
TextureFill.new(images2))
images3.alpha = ActivateAlphaChannel
images3.virtual_pixel_method = TileVirtualPixelMethod
images3[0] = images3.distort(ScaleRotateTranslateDistortion, [20])
images.composite(images3, CenterGravity, 0, 0,
DstInCompositeOp).write("sample1148a.png")

exit



元画像(sf.jpg)


出力画像(sample1148a.png)


動作環境
ruby1.8.6, rmagick2.9.0

Friday, June 26, 2009

RMagickで画像を角丸四角パターンで切り取る

RMagickで画像を角丸四角パターンで切り取るには、以下のコードを実行します。


require 'RMagick'
include Magick

images = ImageList.new("sf.jpg")
images.alpha = ActivateAlphaChannel

images2 = ImageList.new
images2.new_image(20, 20){
self.background_color = "none"
}
dr = Draw.new
dr.fill = "white"
dr.roundrectangle(0,0,18,18,4,4);
dr.draw(images2)

images3 = ImageList.new()
images3.new_image(images.columns, images.rows,
TextureFill.new(images2))
images3.alpha = ActivateAlphaChannel
images.composite(images3, CenterGravity, 0, 0,
DstInCompositeOp).write("sample1147a.png")

exit


元画像(sf.jpg)


出力画像
RMagickを使用して角丸四角パターンで切り取った画像

動作環境
ruby1.8.6, rmagick2.9.0

関連項目
ImageMagickで画像を角丸四角タイルパターンで切り取る (convertコマンドでの同様の処理)

Tuesday, June 23, 2009

ImageMagickとPHPで回転させたぼかし四角で画像を切り取る

Imagickで回転させたぼかし四角で画像を切り取るには、以下のコードを実行します。


<!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>sample1128(ImageMagick6.5.2)</title>
</head>
<body>
<?php
$im = new Imagick("sf.jpg");
$iw = $im->getImageWidth();
$ih = $im->getImageHeight();
$im2 = new Imagick();
$im2->newImage($iw, $ih, "none");
$im2->setImageVirtualPixelMethod(Imagick::VIRTUALPIXELMETHOD_TRANSPARENT);
$im2->setImageMatte(true);
$idraw = new ImagickDraw();
$idraw->setFillColor("blue");
$rx = $iw/2;
$ry = $ih/4;
$rw = $iw/2;
$rh = $ih/2;
$idraw->rectangle($rx,$ry,$rx+$rw,$ry+$rh);
$im2->drawImage($idraw);
$args1 = array($rx+$rw/2, $ry+$rh/2, 1, -30);
//$im->distortImage(Imagick::DISTORTION_SCALEROTATETRANSLATE,
// $args1, false);
// ScaleRotateTranslateDistortion in distort.h
$im2->distortImage(3, $args1, false);
$im2->blurImage(0, 10);
$im2->compositeImage($im, Imagick::COMPOSITE_IN, 0, 0,
Imagick::CHANNEL_ALL);
$im2->writeImage('sample1128a.png');
$idraw->destroy();
$im2->destroy();
$im->destroy();
?>
<img src="sample1128a.png" /><br />

</body>
</html>


元画像(sf.jpg)


出力画像(sample1128a.png)
Imagickで回転させたぼかし四角で切り取った画像
関連項目
ImageMagickとPHPで画像を回転させる - その2

Monday, May 25, 2009

ImageMagickとPHPで回転させた半透明グラデーションで画像を切り取る

Imagickで回転させた半透明グラデーションで画像を切り取るには、以下のコードを実行します。


<!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>sample1098(ImageMagick6.5.2)</title>
</head>
<body>
<?php
$im = new Imagick("sf.jpg");
$im2 = new Imagick();
$im2->newPseudoImage(200, 200, "gradient:#ffffffff-#ffffff00");
$im2->setImageMatte(true);
$points = array(45);
//$im->distortImage(Imagick::DISTORTION_SCALEROTATETRANSLATE, $points, false);
// ScaleRotateTranslateDistortion in distort.h
$im2->distortImage(3, $points, false);

$im2->compositeImage($im, Imagick::COMPOSITE_IN, 0, 0,
Imagick::CHANNEL_ALL);

$im2->writeImage('sample1098a.png');
$im2->destroy();
$im->destroy();
?>
<img src="sample1098a.png" />
</body>
</html>


元画像(sf.jpg)


出力画像(sample1098a.png)
Imagickで回転させた半透明グラデーションで切り取った画像

関連項目
ImageMagickを使用して傾けた半透明グラデーションで画像を切り取る (convertコマンドでの同様の処理)

Thursday, April 30, 2009

Im4javaで画像を切り取る

Im4javaで画像を切り取るには、以下のコードを実行します。


import org.im4java.core.*;
import org.im4java.process.*;

// im4java-0.97.0-bin.tar.bz2を解凍してim4java-0.97.0.jarはclasspathに通す
public class Im4java11
{
public static void main(String args[])
throws Exception
{
try
{
// ConvertCmd convert = new ConvertCmd();
ImageCommand convert = new WindowsConvertCmd();

IMOperation op = new IMOperation();
op.addImage("sf.jpg");
// crop(width, height, x, y)
op.crop(100,100,50,50);
op.addImage("sample1037a.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");
*/
}
}

}


元画像(sf.jpg)


出力画像(sample1037a.png)
im4javaで切り取った画像

関連情報
im4javaのまとめ

im4javaのホームページ
im4java

Monday, April 20, 2009

pycairoで画像を三角形に切り取る

pycairoで画像を三角形に切り取るには、以下のコードを実行します。

# coding=UTF-8
import cairo

surface = cairo.ImageSurface(cairo.FORMAT_ARGB32, 200, 200)
img = cairo.ImageSurface.create_from_png("sf.png")
ctx = cairo.Context(surface)

ctx.set_source_surface(img, 0, 0)
ctx.paint()

ctx.set_operator(cairo.OPERATOR_IN)

ctx.move_to(100, 20)
ctx.line_to(20, 180)
ctx.line_to(180, 180)
ctx.close_path()
ctx.fill()

surface.write_to_png('sample1026a.png')

元画像(sf.png)


出力画像(sample1026a.png)
pycairoで三角形に切り取った画像
動作環境
Python2.6.1, GTK+2.16.0, pycairo1.4.12-2

関連項目
pycairoのまとめ

pycairoをWindowsにインストール

Sunday, April 19, 2009

pycairoを使用して半透明放射グラデーションで画像を切り取る

pycairoを使用して半透明放射グラデーションで画像を切り取るには、以下のコードを実行します。

# coding=UTF-8
import cairo

surface = cairo.ImageSurface(cairo.FORMAT_ARGB32, 200, 200)
img = cairo.ImageSurface.create_from_png("sf.png")
ctx = cairo.Context(surface)

x1 = x2 = 100
r1 = 0
y1 = y2 = 100
r2 = 100

rg = cairo.RadialGradient(x1, y1, r1, x2, y2, r2)
rg.add_color_stop_rgba(0.00, 1, 1, 1, 1)
rg.add_color_stop_rgba(0.75, 1, 1, 1, 0.9)
rg.add_color_stop_rgba(1.00, 1, 1, 1, 0)

psp = cairo.SurfacePattern(img)

ctx.set_source(psp)
ctx.mask(rg)

surface.write_to_png('sample1025a.png')

元画像(sf.png)


出力画像(sample1025a.png)
pycairoで半透明円に切り取った画像

動作環境
Python2.6.1, GTK+2.16.0, pycairo1.4.12-2

関連項目
pycairoのまとめ

pycairoをWindowsにインストール

pycairoで放射グラデーションを描画する

Wednesday, April 15, 2009

RMagickで画像を渦巻き模様で切り取る

RMagickで画像を渦巻き模様で切り取るには、以下のコードを実行します。


require 'RMagick'
include Magick

images = ImageList.new("sf.jpg")
images.alpha = ActivateAlphaChannel
images.new_image(images.columns, images.rows){
self.background_color = "none"
}
dr = Draw.new
dr.fill = "white"
dr.ellipse(images.columns/2, images.rows/2,
images.columns*0.8/2, images.rows*0.8/2,
0, 360)
dr.draw(images);
images.virtual_pixel_method = BackgroundVirtualPixelMethod
images.background_color = "none"
images[images.size-1] = images.blur_channel(0,10,AllChannels).
wave(images.columns/10, images.rows/10).
swirl(800).resize(images.columns, images.rows)
images.first.composite(images[images.size-1], 0, 0,
DstInCompositeOp).write("sample932a.png")


元画像(sf.jpg)


出力画像(sample932a.png)
RMagickで渦巻き模様に切り取った画像

動作環境
ruby1.8.6, rmagick2.7.1

関連項目
ImageMagickで画像を渦巻き模様で切り取る

Wednesday, April 01, 2009

ImageMagickを使用して傾けた半透明グラデーションで画像を切り取る

ImageMagickを使用して傾けた半透明グラデーションで画像を切り取るには、以下のバッチファイルを実行します。

rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.4.8-Q16

%im%\convert.exe sf.jpg -matte -channel rgba ( -size 200x200 gradient:#ffffffff-#00000000 -distort SRT 45 ) -compose dst_in -composite sample912a.png

rem 市松模様と重ね合わせ
%im%\convert.exe -size 200x200 pattern:CHECKERBOARD sample912a.png -composite sample912b.png

元画像(sf.jpg)


出力画像1(sample912a.png)


出力画像2(sample912b.png)


関連項目
ImageMagickとPHPで回転させた半透明グラデーションで画像を切り取る

Monday, March 16, 2009

ImageMagickで画像を磨りガラスのように切り取る

ImageMagickで画像を磨りガラスのようにざらざらとした質感で円形に切り取るには、以下のバッチファイルを実行します。

rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.4.8-Q16
%im%\convert.exe sf.jpg ( -size 200x200 xc:none -matte -channel rgba -fill white -draw "ellipse 100,100 85,85 0,360" -negate -blur 0x10 -spread 3 ) -composite sample899a.png

元画像(sf.jpg)


出力画像(sample899a.png)


関連項目
RMagickで画像を円形に切り取って周囲を磨りガラスのようにする (RMagickでの同様の処理)

Sunday, March 15, 2009

im4javaで画像を円形に切り取る

im4javaで画像を円形に切り取るには、以下のコードを実行します。


import java.util.*;
import org.im4java.core.*;
import org.im4java.process.*;

// im4java-0.96.0-bin.tar.bz2を解凍してim4java-0.96.0.jarはclasspathに通す
public class Im4java6
{
public static void main(String args[])
throws Exception
{
try
{
IMOperation op = new IMOperation();
op.verbose();
op.addImage("sf.jpg");

IdentifyCmd identify = new IdentifyCmd();
ArrayListOutputConsumer output =
new ArrayListOutputConsumer();
identify.setOutputConsumer(output);
identify.run(op);
ArrayList<String> lines = output.getOutput();

int width = 0;
int height = 0;
for(String line:lines){
if( line.startsWith(" Geometry: ") ){
if( line.indexOf("+") != -1 ){
String sz[] = line.substring(
" Geometry: ".length(),
line.indexOf("+")
).split("x");
width = new Integer(sz[0]);
height = new Integer(sz[1]);
}
}
}

// 画像サイズと同じ大きさの円で切り取り
IMOperation op2 = new IMOperation();
op2.size(new Integer(width), new Integer(height));
op2.addImage("xc:none");
op2.alpha("activate").channel("rgba");
op2.fill("white");
op2.draw("ellipse " + (width/2) +
"," + (height/2) + "," + (width/2-1) +
"," + (height/2-1) + ",0,360");
op2.addImage("sf.jpg");
op2.compose("src_in").composite();
op2.addImage("sample923a.png");

// ConvertCmd convert = new ConvertCmd();
ImageCommand convert = new WindowsConvertCmd();
convert.run(op2);


}
catch(CommandException cex)
{
System.out.println(cex.getErrorText());
cex.printStackTrace();
}
}

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

}


元画像(sf.jpg)


出力画像(sample923a.png)


関連情報
im4javaのまとめ

im4javaで画像を角丸四角に切り取る

im4javaのホームページ
im4java

ImageMagickとPHPで画像をタイル配置した角丸四角で切り取る

Imagickで画像をタイル配置した角丸四角で切り取るには、以下のコードを実行します。


<!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>sample908(ImageMagick6.4.8)</title>
</head>
<body>
<?php
/* 画像をタイル配置した角丸四角で切り取る */
/* 角丸四角サイズ */
$rw = 30;
$rh = 20;
/* 余白 */
$padx = 1;
$pady = 1;
/* 角丸サイズ */
$rx = 5;
$ry = 5;

/* 角丸四角イメージ作成 */
$idraw = new ImagickDraw();
$idraw->pushPattern('tile', 0, 0, $rw, $rh);
$idraw->roundrectangle($padx,$pady,
$rw-$padx-1, $rh-$pady-1, $rx, $ry);
$idraw->popPattern();

$im = new Imagick("sf.jpg");
/* タイルパターンにして配置 */
$idraw->setFillPatternURL('#tile');
$im2 = new Imagick();
$im2->newPseudoImage($im->getImageWidth(),
$im->getImageHeight(), "xc:none");
$idraw->rectangle(0, 0, $im->getImageWidth(),
$im->getImageHeight());
$im2->drawImage($idraw);

$im2->compositeImage($im,
Imagick::COMPOSITE_IN, 0, 0, Imagick::CHANNEL_ALL);
$im2->writeImage('sample908a.png');
$im2->destroy();
$im->destroy();
?>
<img src="sample908a.png" /><br />

</body>
</html>


元画像(sf.jpg)


出力画像(sample908a.png)


関連項目
ImageMagickで画像を角丸四角タイルパターンで切り取る (convertコマンドでの同様の処理)
ImageMagickとPHPで画像をタイル配置する

Friday, March 13, 2009

RMagickで画像を手でちぎったように切り取る

RMagickで画像を手でちぎったように切り取るには、以下のコードを実行します。

require 'RMagick'
include Magick

# 余白
px = 10
py = 10

images = ImageList.new("sf.jpg")
images.alpha = ActivateAlphaChannel
# マスク作成
images2 = ImageList.new
images2.new_image(images.columns, images.rows){
self.background_color = "none"
}
dr = Draw.new
dr.fill = "white"
dr.rectangle(px, py, images2.columns-px, images2.rows-py)
dr.draw(images2);
images2[0] = images2.spread(5).median_filter(3)
# マスク画像で切り取り
images.composite(images2, 0, 0, DstInCompositeOp).write("sample914a.png")

exit

元画像(sf.jpg)


出力画像(sample914a.png)


動作環境
ruby1.8.6, rmagick2.7.1

関連項目
ImageMagickで手で切り取ったように不規則に画像を切り取る (convertコマンドでの同様の処理)

Thursday, March 05, 2009

ImageMagickとPHPで画像を正多角形で切り取る

Imagickで画像を正多角形で切り取るには、以下のコードを実行します。

<!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>sample896(ImageMagick6.4.8)</title>
</head>
<body>
<?php
/* 画像をn角形で切り取る */
$numpoints = 5;
/* 半径 */
$rad = 90;
/* 中心 */
$cx = 100;
$cy = 100;

/* n角形をポリゴンで描画 */
$angle = 270;
for($li=0;$li<$numpoints;$li++){
$points[] = array('x' => $cx+cos(deg2rad($angle))*$rad, 'y' => $cy+sin(deg2rad($angle))*$rad);
$angle += 360/$numpoints;
}
$im = new Imagick("sf.jpg");
$im2 = new Imagick();
$im2->newImage($im->getImageWidth(), $im->getImageHeight(), "none");
$im2->setImageMatte(true);
$idraw = new ImagickDraw();
$idraw->polygon($points);
$im2->drawImage($idraw);

$im2->compositeImage($im, Imagick::COMPOSITE_IN, 0, 0, Imagick::CHANNEL_ALL);
$im2->writeImage('sample896a.png');
$idraw->destroy();
$im2->destroy();
$im->destroy();
?>
<img src="sample896a.png" /><br />

</body>
</html>


元画像(sf.jpg)


出力画像(sample896a.png)


関連項目
ImageMagickとPHPで凹んだ角丸四角形に画像を切り取る

Monday, March 02, 2009

RMagickで画像を角丸四角に切り取って立体的にする

RMagickで画像を角丸四角に切り取って立体的にするには、以下のコードを実行します。

require 'RMagick'
include Magick

# 余白
padx = 10
pady = 10
# 角丸
rx = 20
ry = 20

images = ImageList.new("sf.jpg")
images.alpha = ActivateAlphaChannel

images2 = ImageList.new
images2.new_image(images.columns, images.rows){
self.background_color = "none"
}
dr = Draw.new
dr.fill = "white"
dr.roundrectangle(padx,pady,
images.columns-1-padx, images.rows-1-pady, rx, ry)
dr.draw(images2);
# 描画した角丸四角で切り取り
img = images.composite(images2, 0, 0, DstInCompositeOp);

# 角丸四角図形を立体的にする
img2 = images2.shade(true,135,23)
img2 = img2.blur_channel(0, 3, ChannelType::AllChannels).normalize().contrast(true).contrast(true)

# overlayで重ね合わせ
img.composite(img2, 0, 0, OverlayCompositeOp).write("sample894a.png")
exit

元画像(sf.jpg)


出力画像(sample894a.png)


動作環境
ruby1.8.6, rmagick2.7.1

関連項目
RMagickで画像を高低差のあるタイルに貼り付けたように加工する
RMagickで画像を立体的なタイル風に変換する

Friday, February 27, 2009

im4javaで画像を角丸四角に切り取る

im4javaで画像を角丸四角に切り取るには、以下のコードを実行します。


// im4java-0.96.0-bin.tar.bz2を解凍してim4java-0.96.0.jarはclasspathに通す
public class Im4java3
{
public static void main(String args[])
throws Exception
{
try
{
IMOperation op = new IMOperation();
op.verbose();
op.addImage("sf.jpg");

IdentifyCmd identify = new IdentifyCmd();
ArrayListOutputConsumer output =
new ArrayListOutputConsumer();
identify.setOutputConsumer(output);
identify.run(op);
ArrayList lines = output.getOutput();

int width = 0;
int height = 0;
for(String line:lines){
if( line.startsWith(" Geometry: ") ){
if( line.indexOf("+") != -1 ){
String sz[] = line.substring(
" Geometry: ".length(),
line.indexOf("+")
).split("x");
width = new Integer(sz[0]);
height = new Integer(sz[1]);
}
}
}

// 画像サイズと同じ大きさの角丸四角で切り取り
IMOperation op2 = new IMOperation();
op2.size(new Integer(width), new Integer(height));
op2.addImage("xc:none");
op2.alpha("activate").channel("rgba");
op2.fill("white");
op2.draw("roundrectangle 0,0," + (width-1) +
"," + (height-1) + ",30,30");
op2.addImage("sf.jpg");
op2.compose("src_in").composite();
op2.addImage("sample920a.png");

// ConvertCmd convert = new ConvertCmd();
ImageCommand convert = new WindowsConvertCmd();
convert.run(op2);


}
catch(CommandException cex)
{
System.out.println(cex.getErrorText());
cex.printStackTrace();
}
}

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

}


元画像(sf.jpg)


出力画像(sample920a.png)


関連情報
im4javaのまとめ
im4javaで画像のサイズを取得する

Thursday, February 19, 2009

RMagickで画像を2値化で切り取って、白背景でぼかす

RMagickで画像を2値化で切り取って、白背景でぼかすには、以下のコードを実行します。

require 'RMagick'
include Magick

# 画像を2値化して切り取って白背景と合成してからぼかす
images1 = ImageList.new("sample5r.jpg")
images1[0] = images1.threshold(MaxRGB*0.85).negate(true)
images1.alpha = ActivateAlphaChannel
images1[0] = images1.fx("p.r==1?1:0", AlphaChannel)
images2 = ImageList.new("sample5r.jpg")
img = images1.composite(images2, 0, 0, SrcInCompositeOp);
img2 = Image.new(img.columns, img.rows){
self.background_color = "white"
}
img3 = img2.composite(img, CenterGravity, 0, 0, OverCompositeOp);
img4 = img3.blur_channel(0, 2, ChannelType::AllChannels)

img4.write("sample778a.png")

exit
元画像(sample5r.jpg)


出力画像(sample778a.png)


動作環境
ruby1.8.6, rmagick2.7.1

関連項目
ImageMagickで、2値化して画像を切り取って白背景でぼかす (convertコマンドでの同様の処理)

Friday, February 06, 2009

ImageMagickで画像を角丸四角タイルパターンで切り取る

ImageMagickで画像を角丸四角タイルパターンで切り取るには、以下のバッチファイルを実行します。

rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.4.4-Q16

rem 透過PNGで角丸四角の画像を作成
%im%\convert.exe -size 30x25 xc:black -fill white -draw "roundrectangle 1,1,28,23,4,4" sample767a.png
rem タイル配置して切り取り
%im%\convert.exe -size 300x225 tile:sample767a.png -matte -channel a -fx "p.r" sf2.jpg -compose src_in -composite sample767b.png
rem 影付け
%im%\convert.exe -size 303x228 xc:white ( sample767b.png -background #000000 -shadow 60x2+2+2 ) sample767b.png -flatten sample767c.png


元画像(sf2.jpg)


出力画像(sample767b.png)
角丸四角タイルパターンで切り取った画像

出力画像(sample767c.png):影付けをした出力

Tuesday, February 03, 2009

ImageMagickで画像を渦巻き模様で切り取る

ImageMagickで画像を渦巻き模様で切り取るには、以下のバッチファイルを実行します。

rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.4.4-Q16

%im%\convert.exe -size 200x200 xc:white -matte -channel rgba -fill black -draw "ellipse 100,100,80,80,0,360" -virtual-pixel background -background white -blur 0,10 -wave 20,20 -swirl 800 sample764a.png

%im%\convert.exe -size 200x200 xc:none -matte -channel rgba -fill white -draw "ellipse 100,100,80,80,0,360" -virtual-pixel background -background none -blur 0,10 -wave 20,20 -swirl 800 -resize 200x200! sf.jpg -compose src_in -composite sample764b.png

元画像(sf.jpg)


出力画像1(sample764a.png):切り取りマスク


出力画像2(sample764b.png)
渦巻き模様で切り取り