[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Showing posts with label 影付け. Show all posts
Showing posts with label 影付け. Show all posts

Monday, June 15, 2009

SVGRendererで文字列にドロップシャドウをつける

SVGRendererで文字列にドロップシャドウをつけるには、以下のコードを実行します。


import groovy.swing.j2d.svg.*

gr = new SVGRenderer()
gr.renderToFile("sample990a.svg", 200, 200){
image(file: "SF.JPG")
font(new java.awt.Font('Tahoma', java.awt.Font.BOLD, 26))
text( x:10, y:80,
text: "San Francisco",
fill: color("#ffffff"),
borderColor: no
){
filters {
dropShadow()
}
}
}


元画像(sf.jpg)


出力画像(sample990a.svg)
SVGRendererで文字列にドロップシャドウをつけた画像

動作環境
Groovy1.6.0, JDK1.6 Update12

関連項目
groovyで画像の上に影付き文字列を描画する (GraphicsRendererでの同様の処理)

Monday, April 13, 2009

ImageMagickで画像の上にタイル配置した影付き文字列を描画する

ImageMagickで画像の上にタイル配置した影付き文字列を描画するには、以下のバッチファイルを実行します。

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

%im%\convert.exe sf.jpg ( -set option:distort:viewport 200x200+0+0 -fill white -font Tahoma -pointsize 35 -background none "label:Sample" -bordercolor none -border 10x5 -virtual-pixel tile -distort SRT "0.5 30" ) ( +clone -background black -shadow 80x2+3+3 ) -swap 1,2 -flatten sample917a.png

元画像(sf.jpg)


出力画像(sample917a.png)

Sunday, February 08, 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>sample770(ImageMagick6.4.4)</title>
</head>
<body>
<?php
/* ImageMagickとPHPで凹んだ影付き角丸四角を描画する */
/* 余白 */
$padx = 10;
$pady = 10;
/* 角丸半径 */
$rx = 20;
$ry = 20;

$im = new Imagick("sf.jpg");
$im2 = new Imagick();
$im2->newPseudoImage(
$im->getImageWidth(), $im->getImageHeight(),
"xc:white");
/* 白黒で角丸四角を描画 */
$idraw = new ImagickDraw();
$idraw->setFillColor("#000000");
$idraw->roundrectangle($padx,$pady,
$im->getImageWidth()-$padx-1,
$im->getImageHeight()-$pady-1, $rx, $ry);
$im2->drawImage($idraw);
/* redの値をalphaにして、青白い色をrgbに指定 */
$it = $im2->getPixelIterator();
foreach($it as $py => $line){
foreach($line as $px => $pixel){
$rv = $pixel->getColorValue(Imagick::COLOR_RED);
$pixel->setColorValue(Imagick::COLOR_RED, 0xe8/0xff);
$pixel->setColorValue(Imagick::COLOR_GREEN, 0xf0/0xff);
$pixel->setColorValue(Imagick::COLOR_BLUE, 0xf8/0xff);
$pixel->setColorValue(Imagick::COLOR_ALPHA, $rv);
}
$it->syncIterator();
}

/* 影つけ */
$im3=$im2->clone();
$im3->setImageBackgroundColor('black');
$im3->shadowImage(70,3,5,5);

/* 重ね合わせ */
$im->addImage($im3);
$im->addImage($im2);
$im4=$im->mosaicImages();

/* 切り取り */
$im4->cropImage($im->getImageWidth(),
$im->getImageHeight(), 0, 0);

$im4->writeImage('sample770a.png');
$idraw->destroy();
$im4->destroy();
$im3->destroy();
$im2->destroy();
$im->destroy();
?>
<img src="sample770a.png" /><br />

</body>
</html>


元画像(sf.jpg)


出力画像(sample770a.png)


関連項目
ImageMagickで凹んだ影付き角丸四角を描画する (convertコマンドによる同様の処理)

Wednesday, December 17, 2008

ImageMagickとPHPで、文字列の影に横線を入れる

ImageMagickとPHPで、文字列の影に横線を入れるには、以下のコードを実行します。


<!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>sample715(ImageMagick6.4.4)</title>
</head>
<body>
<?php
/* 文字列の影に横線を入れる */
$im = new Imagick();
$im->newImage(200, 50, 'none');
$im->setImageMatte(true);

$idraw = new ImagickDraw();
/* 塗りつぶし色設定 */
$idraw->setFillColor('#707070');
/* フォント設定 */
$idraw->setFont('Tahoma');
/* フォントサイズ設定 */
$idraw->setFontSize(30);
/* gravity設定 */
$idraw->setGravity(Imagick::GRAVITY_CENTER);
$im->annotateImage($idraw, 0, 0, 0, "ImageMagick");

/* 影つけ */
$im2=$im->clone();
$im2->setImageBackgroundColor('black');
$im2->shadowImage(70,3,5,5);

/* 1ラインごとに透明に */
$it = $im2->getPixelIterator();
foreach($it as $py => $line){
if($py%2 == 0 ){
foreach($line as $px => $pixel){
$pixel->setColorValue(Imagick::COLOR_ALPHA, 0);
}
}
$it->syncIterator();
}

/* 白背景と重ね合わせて保存 */
$im3 = new Imagick();
$im3->newImage($im->getImageWidth(), $im->getImageHeight(), "white");
$im3->addImage($im);
$im3->addImage($im2);
$im4=$im3->mosaicImages();

$im4->writeImage('sample715a.png');

$idraw->destroy();
$im4->destroy();
$im3->destroy();
$im2->destroy();
$im->destroy();
?>
<img src="sample715a.png" />

</body>
</html>


出力画像(sample715a.png)


関連項目
ImageMagickで、文字列の影に横線をいれる (Convertコマンドによる同様の処理)
ImageMagickとPHPで透過PNGに影付けして、影にモーションブラーをかける

Thursday, November 06, 2008

librsvgを使用して影付き文字列を描画する

librsvgを使用して影付き文字列を描画するには、以下のSVGファイルを処理します。

text-and-dropshadow.svg
<?xml version="1.0"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns="http://www.w3.org/2000/svg" version="1.1"
xmlns:xlink="http://www.w3.org/1999/xlink"
width="220" height="220">

<defs>
<filter id="gbf" filterUnits="userSpaceOnUse" x="0" y="0" width="220" height="50" >
<feGaussianBlur in="SourceAlpha" stdDeviation="4" result="shadow"/>
<feOffset in="shadow" dx="4" dy="4" result="shadow2"/>
<feComposite in="SourceGraphic" in2="shadow2" operator="over"/>
</filter>
</defs>

<image x="20" y="20" width="200" height="200"
xlink:href="sf.jpg" >
<title>sf.jpg</title>
</image>
<text x="10" y="30" font-family="Arial" font-size="30"
style="fill:#fffff8; stroke:#fffff8;" filter="url(#gbf)">San Francisco
</text>
</svg>


コマンド
rsvg-convert text-and-dropshadow.svg -f png -o sample690.png

元画像(sf.jpg)


出力画像(sample690.png)



○関連項目
librsvgをwindowsで使用してSVGからPNG画像を生成する (librsvgをWindowsで使用する方法)
librsvgを使用して画像を角丸四角に切り取り影付けする
・libsvgに関する他の記事はこちらを参照してください。

Wednesday, November 05, 2008

librsvgを使用して画像を角丸四角に切り取り影付けする

librsvgを使用して画像を角丸四角に切り取り影付けするには、以下のsvgファイルを処理します。
masked-image-dropshadow.svg


<?xml version="1.0"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns="http://www.w3.org/2000/svg" version="1.1"
xmlns:xlink="http://www.w3.org/1999/xlink"
width="300" height="300">

<defs>
<mask id="mask1" maskUnits="userSpaceOnUse"
x="0" y="0" width="300" height="300">
<rect x="50" y="50" width="200" height="200"
rx="20" ry="20"
style="fill:#ffffff; "/>
</mask>
<filter id="gbf">
<feGaussianBlur in="SourceAlpha" stdDeviation="4" result="shadow"/>
<feOffset in="shadow" dx="4" dy="4" result="shadow2"/>
<feComposite in="SourceGraphic" in2="shadow2" operator="over"/>
</filter>
</defs>

<g filter="url(#gbf)">
<image x="50" y="50" width="200px" height="200px"
xlink:href="sf.jpg" mask="url(#mask1)" >
<title>sf.jpg</title>
</image>
</g>
<!--mask="url(#mask1)" -->
</svg>

コマンド
rsvg-convert masked-image-dropshadow.svg -f png -o sample689.png

元画像(sf.jpg)


出力画像(sample689.png)

○関連項目
librsvgをwindowsで使用してSVGからPNG画像を生成する (librsvgをWindowsで使用する方法)
・libsvgに関する他の記事はこちらを参照してください。

Thursday, October 09, 2008

Java2DとJava Image Filters(pixels)を使用して画像のドロップシャドウ付き文字列を描画する

Java2DとJava Image Filters(pixels)を使用して画像のドロップシャドウ付き文字列を描画するには、以下のコードを実行します。

import java.awt.*;
import java.awt.geom.*;
import java.awt.image.*;
import java.io.*;
import java.util.*;
import javax.imageio.*;
import com.jhlabs.image.*;

public class Java2DTest52
{
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(0xff, 0xff, 0xff, 0xff));
gr.setFont(new Font("Tahoma", Font.BOLD, 28));
gr.drawString("San Francisco", 5, 50);
gr.dispose();

// ShadowFilter sf = new ShadowFilter(3f,3f,-3f,0.8f);
ShadowFilter sf = new ShadowFilter();
/* 半径 */
sf.setRadius(7f);
/* 透明度 */
sf.setOpacity(0.9f);
/* 角度 */
sf.setAngle(300f/180f*ImageMath.PI);
/* 距離 */
sf.setDistance(5f);
/* 影の色 */
sf.setShadowColor(0xff202020);
/* 影のマージン */
sf.setAddMargins(false);
/* 影のみにするか */
sf.setShadowOnly(false);
BufferedImage img3 = sf.filter(img2, null);

Graphics2D gr2 = img.createGraphics();
gr2.drawImage(img3,0,0,null);
gr2.dispose();

ImageIO.write(img, "jpg", new File("sample583a.jpg"));
}
}

元画像(sf.jpg)


出力画像(sample583a.jpg)

関連項目
Jerry Huxtableさんのホームページ
http://www.jhlabs.com/index.html
Java Image Filtersのページ
http://www.jhlabs.com/ip/filters/
java.netでのプロジェクトページ
https://pixels.dev.java.net/

Wednesday, July 16, 2008

RMagickで閾値を使用して切り取った画像に影付けをする

RMagickで閾値を使用して切り取った画像に影付けをするには、以下のコードを実行します。

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

元画像(sample5.jpg)


出力画像(sample501a.png)


動作環境
ruby1.8.6-26/RMagick-2.3.0-ImageMagick-6.4.0-2-Q8

関連項目
ImageMagickで閾値を使用して切り取った画像に影付けする

Friday, July 04, 2008

ImageMagickとPHPで透過PNGに影付けして、影にモーションブラーをかける

Imagickで透過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>sample488(ImageMagick6.4.2)</title>
</head>
<body>
<?php
/* 透過PNGに影付けして、影にモーションブラーをかける */
/* 透過PNGと大きめのサイズの透明イメージを重ね合わせる */
$im = new Imagick("sample2.png");
$ime = new Imagick();
$ime->newImage($im->getImageWidth()+50, $im->getImageHeight()+50, 'none');
$ime->compositeImage($im, Imagick::COMPOSITE_DEFAULT, 25, 25);

/* 影つけ&モーションブラー */
$im2=$ime->clone();
$im2->setImageBackgroundColor('black');
$im2->shadowImage(40,2,3,3);
$im2->motionBlurImage(0,20,225);

/* 背景用イメージ作成と重ね合わせ */
$im3 = new Imagick();
$im3->newImage($im->getImageWidth()+50, $im->getImageHeight()+50, 'white');
$im3->addImage($im2);
$im3->addImage($ime);
$im4=$im3->mosaicImages();
$im4->writeImage('sample488a.jpg');

/* $im4->clear(); 2008/09/30追記:destroyと同様にClearMagicWandを呼ぶので必要なし */
$im4->destroy();
/* $im3->clear(); 2008/09/30追記:destroyと同様にClearMagicWandを呼ぶので必要なし */
$im3->destroy();
/* $im2->clear(); 2008/09/30追記:destroyと同様にClearMagicWandを呼ぶので必要なし */
$im2->destroy();
/* $ime->clear(); 2008/09/30追記:destroyと同様にClearMagicWandを呼ぶので必要なし */
$ime->destroy();
/* $im->clear(); 2008/09/30追記:destroyと同様にClearMagicWandを呼ぶので必要なし */
$im->destroy();
?>

<img src="sample488a.jpg" />

</body>
</html>

元画像(sample2.png)


出力画像(sample488a.jpg)



環境
Apache 2.2.8/PHP5.2.5/ImageMagick6.4.2

関連項目
ImageMagickで画像に影付けしてモーションブラーをかける (Convertコマンドによる同様の処理)

Saturday, May 24, 2008

RMagickで画像を影つき角丸四角に変換する

RMagickで画像を影つき角丸四角に変換するには、以下のコードを実行します。

require 'RMagick'
include Magick

img1 = ImageList.new("sf.jpg")
img2 = Image.new(img1.columns, img1.rows){
self.background_color = "none"
}
img1.alpha = ActivateAlphaChannel
dr = Draw.new
# 描画色
dr.fill = "white"
# 角丸四角を描画
dr.roundrectangle(0,0,img1.columns-1, img1.rows-1, 20, 20)
dr.draw(img2);
img3 = img1.composite(img2, 0, 0, DstInCompositeOp);

# 影を作成
img3.background_color = "black"
img4 = img3.shadow(5, 5, 3, 0.4)
img5 = img4.composite(img3, 0, 0, OverCompositeOp);
img6 = Image.new(img4.columns, img4.rows){
self.background_color='white'
}
img7 = img6.composite(img5, 0, 0, OverCompositeOp);

img7.write("sample458a.png")

exit

元画像(sf.jpg)


出力画像(sample458a)


動作環境
ruby1.8.6-26/RMagick-2.3.0-ImageMagick-6.4.0-2-Q8

関連項目
RMagickをWindowsで使用するための設定
RMagickで画像を角丸四角に切り取る

Thursday, May 22, 2008

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>sample395</title>
</head>
<body>
<?php
/* 画面上部に10ピクセルの余白を追加 */
$im = new Imagick('sf.jpg');
$im->setImageBackgroundColor('white');
$im->spliceImage(20, 25, 0, 0);

$im2 = new Imagick();
$im2->newImage($im->getImageWidth(), $im->getImageHeight(), 'none');
$idraw = new ImagickDraw();
/* フォント設定 */
$idraw->setFont('Tahoma');
/* フォントサイズ設定 */
$idraw->setFontSize(35);
/* 塗りつぶし色設定 */
$idraw->setFillColor('#bbddff');
$idraw->annotation(2, 30, 'San Francisco');
$im2->drawImage($idraw);
$im2->trimImage(0);
/* 影つけ */
$im3=$im2->clone();
$im3->setImageBackgroundColor('black');
$im3->shadowImage(40,2,3,3);
/* 重ね合わせ */
$im->addImage($im3);
$im->addImage($im2);
$im4=$im->mosaicImages();
$im4->writeImage('sample395a.jpg');

/* $im4->clear(); 2008/09/30追記:destroyと同様にClearMagicWandを呼ぶので必要なし */
$im4->destroy();
/* $im3->clear(); 2008/09/30追記:destroyと同様にClearMagicWandを呼ぶので必要なし */
$im3->destroy();
/* $im2->clear(); 2008/09/30追記:destroyと同様にClearMagicWandを呼ぶので必要なし */
$im2->destroy();
/* $im->clear(); 2008/09/30追記:destroyと同様にClearMagicWandを呼ぶので必要なし */
$im->destroy();

?>

<img src="sample395a.jpg" />

</body>
</html>


元画像(sf.jpg)


出力画像(sample395a.jpg)


環境
Apache 2.2.8/PHP5.2.5/ImageMagick6.4.0

関連項目
WindowsでImageMagickをPHPから使用するための設定 (Imagickの設定)
ImageMagickとPHPで画像に余白を追加する
ImageMagickとPHPで、画像に日本語の文字列を描画する
ImageMagickで、画像からはみ出して影付き文字列を描画する (Convertコマンド)

Tuesday, May 06, 2008

ImageMagickで、文字列の影に横線をいれる

文字列の影に横線をいれるには、以下のバッチファイルを実行します。

rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.4.0-Q16
%im%\convert.exe -size 200x50 xc:none -gravity center -font Tahoma -pointsize 30 -fill #707070 -annotate 0 "ImageMagick" ( +clone -background #000000 -shadow 70x3+5+5 -fx "j%%2>0?p:#FFFFFF" ) +swap -background white -mosaic sample378.png

上記バッチファイルでは、以下の処理を実行しています。
1. 横200ピクセルx縦50ピクセルの透明なイメージを作成し、Tahomaフォント・30ポイント、描画色#707070で文字列ImageMagickを描画。
2. 処理1の画像を複製し、影の色#000000で影を生成し、偶数ラインを#FFFFFFの色にします。
3. 処理1と処理2の画像を入れ替え、背景色白で重ね合わせます。

出力画像(sample378.png)

Thursday, February 14, 2008

ImageMagickで、凹んだ影つき円を描画する

凹んだ影つき円を描画するには、以下のバッチファイルを実行します。

rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.3.7-Q16
%im%\convert.exe sf.jpg -matte -channel rgba ( -size 200x200 xc:none -fill white -draw "ellipse 100,100,90,90,0,360" -negate -fx "p!=1?0:#F0F0D0FF" ) ( +clone -background #000000 -shadow 70x8+5+5 ) +swap -mosaic -crop 200x200+0+0 sample307.jpg

元画像(sf.jpg)


出力画像(sample307.jpg)



関連項目
ImageMagickで凹んだ影付き角丸四角を描画する

Friday, January 25, 2008

ImageMagickで画像を角丸四角に切り取って文字入れをする

画像を角丸四角に切り取って文字入れをするには、以下のバッチファイルを実行します。

rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.3.7-Q16
%im%\convert.exe sf2.jpg -matte -channel rgba ( sf2.jpg -crop 300x30+0+0 -modulate 50 ) -composite -font Comic-Sans-MS-Bold -gravity north -fill white -draw "font-size 20 text 0,0 'San Francisco'" -gravity northwest ( -size 300x225 xc:none -draw "roundrectangle 0,0 300,225 30,30" ) -compose dst_in -composite sample297.png
rem 影つけ
%im%\convert.exe sample297.png ( +clone -background #000000 -shadow 50x2+5+5 ) +swap -background white -mosaic sample297b.jpg

元画像(sf2.jpg)


出力画像(sample297.png)


影付けした出力画像(sample297b.jpg)


関連項目
ImageMagickで文字列の描画 (日本語の文字入れ)
ImageMagickで、ビデオ風の画像を作成する
ImageMagickで画像を角丸四角に切り取って文字入れをする

Saturday, January 05, 2008

ImageMagickで、文字に影だけをつける

文字に影だけをつけるには-shadeオプションでハイライト&影のある文字列を描画した後にハイライト部分を取り除きます(-fx "p>=0.45?0.45:p"の部分)。

rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.3.7-Q16
%im%\convert.exe -size 300x50 xc:none -font Tahoma-Bold -gravity center
-fill white -draw "font-size 40 text 0,0 'ImageMagick'" -shade 135x23
-normalize -blur 0x1 -fx "p>=0.45?0.45:p" -modulate 120
( -size 300x50 xc:none -font Tahoma-Bold -gravity center -fill #7799cc
-draw "font-size 40 text 0,0 'ImageMagick'" ) -compose overlay -composite sample271a.png

出力画像(sample271a.png)


関連項目
ImageMagickで凸状に文字列を描画する

Thursday, January 03, 2008

ImageMagickで画像の上下・左右をグラデーションで塗る

画像の左右をグラデーションで塗るには、以下のバッチファイルを実行します。

rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.3.7-Q16
%im%\convert.exe -size 240x200 xc:none -matte -channel rgba -fill black -draw "rectangle 0,0,19,199 rectangle 220,0,239,199" -blur 0x10 -gravity center -crop 200x200+0+0 sample267a.png
%im%\convert.exe sf.jpg -geometry +50+50 sample267a.png -composite sample267b.jpg

出力画像(sample267a.png)


重ね合わせ画像(sf.jpg)


重ねあわせ例(sample267b.jpg)


上下をグラデーションで塗るには以下のバッチファイルを実行します。

rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.3.7-Q16
%im%\convert.exe -size 200x240 xc:none -matte -channel rgba -fill black -draw "rectangle 0,0,199,19 rectangle 0,220,199,239" -blur 0x10 -gravity center -crop 200x200+0+0 sample267c.png
%im%\convert.exe sf.jpg -geometry +50+50 sample267c.png -composite sample267d.jpg

出力画像(sample267c.png)


重ねあわせ例(sample267d.jpg)


関連項目
ImageMagickで角丸四角画像の端をグラデーションで塗る
ImageMagickで画像の端をグラデーションで塗る
ImageMagickで、画像の上下・左右をバンド状グラデーションで塗る

Saturday, December 15, 2007

ImageMagickで、画像の輪郭を影で浮かび上がらせた画像を生成する

画像の輪郭を影で浮かび上がらせた画像を生成するには、
以下のバッチファイルを実行します。

rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.3.7-Q16
%im%\convert.exe tree1.jpg -threshold 40000 -negate -matte -channel a -fx "r"
-channel rgb -fx "#3070A0FF" -channel rgba ( +clone -background #FFFFFF
-shadow 97x4+0+0 ) +swap -background #3070A0FF -mosaic
-crop 300x225+0+0 sample254a.png

上記バッチでは、画像を2値化して、白の影付けを行い、背景色は青っぽい色に
設定しています。

元画像(tree1.jpg)


出力画像(sample254a.png)


関連項目
ImageMagickで閾値を使用して切り取った画像に影付けする
ImageMagickで、画像を2値化して白色部分は元画像のままで黒色部分は影付けした画像を生成する
ImageMagickとPHPで画像の輪郭を影で浮かび上がらせた画像を生成する (Imagickによる同様の処理)

Wednesday, May 23, 2007

ImageMagickで画像に影付けして複数方向にモーションブラーをかける

ImageMagickで画像に影付けして複数方向にモーションブラーをかけるには、
以下のバッチを実行します。

rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.3.4-Q16
%im%\convert.exe -size 150x150 xc:#ffffff ( sample2.png -background none -gravity center -extent 150x150 ) ( +clone -background #bbddff -shadow 80x2+0+0 -motion-blur 0x20+225 ) +swap ( +clone -background #bbddff -shadow 80x2+3+3 -motion-blur 0x20+105 ) +swap ( +clone -background #bbddff -shadow 80x2+3+3 -motion-blur 0x20+345 ) +swap -mosaic sample161a.jpg

上記のバッチでは、225度、105度、345度にモーションブラーをかけています。

元画像(sample2.png)


出力画像(sample161a.jpg)

Friday, May 11, 2007

ImageMagickで画像を傾けて影付けする

ImageMagickで画像を傾けて影付けするには、
以下のバッチファイルを実行します。

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

%im%\convert.exe sample8.jpg -bordercolor #c0b49d -border 3 -resize 150x75 -background none -rotate 7 ( +clone -background #000000 -shadow 150x3+3+3 ) +swap -background none -mosaic sample155a.png
%im%\convert.exe -size 200x100 gradient:#f4a729-#fce769 sample155a.png -geometry +40+25 -composite sample155b.png

元画像(sample8.jpg)


出力画像(sample155b.png)

Wednesday, May 02, 2007

ImageMagickで半透明矩形に透過文字を描画して影付けする

ImageMagickで半透明矩形に透過文字を描画して影付けするには、
以下のバッチファイルを実行します。

rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.3.3-Q16
%im%\convert.exe -size 100x50 xc:#00000080 -channel RGBA -fill #000000ff +antialias -gravity center -draw "font-size 18 text 0,0 'Flower'" -fx "p==#000000?0:p" sample149a.png
%im%\convert.exe sample7.jpg ( sample149a.png -background none -gravity center -extent 150x100 ) ( +clone -background #BBDDFF -shadow 150x3+3+3 ) +swap -mosaic sample149b.jpg

元画像(sample7.jpg)


出力画像(sample149b.jpg)


2008/01/04追記
ver6.3.7では、以下のバッチファイルを実行します。

rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.3.7-Q16
%im%\convert.exe -matte -channel RGBA -size 100x50 xc:#00000080 -fill #000000ff +antialias -gravity center -draw "font-size 18 text 0,0 'Flower'" -fx "p==#000000FF?0:p" sample149a.png
%im%\convert.exe sample7.jpg ( sample149a.png -background none -gravity center -extent 150x100 ) ( +clone -background #BBDDFF -shadow 150x3+3+3 ) +swap -mosaic -crop 150x100+0+0 sample149b.jpg