Showing posts with label 吹き出し. Show all posts
Showing posts with label 吹き出し. Show all posts

Tuesday, June 09, 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>sample1110(ImageMagick6.5.2)</title>
</head>
<body>
<?php
/* 画像サイズ */
$iw=200;
$ih=200;
/* 吹き出し左上 */
$bx=25;
$by=25;
/* 吹き出しサイズ */
$bw=150;
$bh=150;
/* 角丸と吹き出し線 */
$rx=20;
$ry=20;
/* 背景色 */
$bc="none";
/* 塗りつぶし色 */
$fc="skyblue";
/* ストローク色 */
$sc="darkblue";
/* ストローク幅 */
$lw=2;

$im = new Imagick();
$im->newImage($iw, $ih, $bc);
$idraw = new ImagickDraw();
$idraw->setFillColor($fc);
$idraw->setStrokeColor($sc);
$idraw->setStrokeWidth($lw);
$idraw->pathStart();
/* 左上の角丸 */
$idraw->pathMoveToAbsolute(
$bx, $by+$ry);
$idraw->pathEllipticArcAbsolute(
$rx, $ry, 0, false, true, $bx+$rx, $by);
/* 上側の線 */
$idraw->pathLineToAbsolute(
$bx+$bw-$rx-1, $by);
/* 右上の角丸 */
$idraw->pathEllipticArcAbsolute(
$rx, $ry, 0, false, true, $bx+$bw-1, $by+$ry);
/* 右側の線 */
$idraw->pathLineToAbsolute(
$bx+$bw-1, $by+$bh-$ry-1);
/* 右下の角丸 */
$idraw->pathEllipticArcAbsolute(
$rx, $ry, 0, false, true,
$bx+$bw-$rx-1, $by+$bh-1);
/* 下側の線 */
$idraw->pathLineToAbsolute(
$bx+$rx, $by+$bh-1);
/* 左下の曲線 */
$idraw->pathEllipticArcAbsolute(
$rx, $ry, 0, false, false,
$bx, $by+$bh+$ry-1);
$idraw->pathClose();

$im->drawImage($idraw);
$im->writeImage('sample1110a.png');
$im->destroy();
?>
<img src="sample1110a.png" /><br />

</body>
</html>


出力画像(sample1110a.png)
Imagickで描画した吹き出し

関連項目
ImageMagickとPHPで立体的な吹き出しを描画する
ImageMagickとPHPで半透明の吹き出しを描画する

Thursday, May 14, 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>sample1091(ImageMagick6.5.2)</title>
</head>
<body>
<?php
$im = new Imagick("sf.jpg");
$iw = $im->getImageWidth();
$ih = $im->getImageHeight();

$im2 = new Imagick();
$im2->newPseudoImage($iw, $ih, "xc:none");

$idraw = new ImagickDraw();
$idraw->setFillColor("white");
$idraw->ellipse(100,80,50,30,0,360);
$polygon[] = array('x' => 80, 'y' => 100);
$polygon[] = array('x' => 90, 'y' => 120);
$polygon[] = array('x' => 90, 'y' => 100);
$idraw->polygon($polygon);
$im2->drawImage($idraw);
$im2->shadeImage(true, 135, 23);
$im2->blurImage(0, 2, Imagick::CHANNEL_RED +
Imagick::CHANNEL_GREEN +
Imagick::CHANNEL_BLUE);
$im2->normalizeImage(Imagick::CHANNEL_RED +
Imagick::CHANNEL_GREEN +
Imagick::CHANNEL_BLUE);
$im2->setImageMatte(true);

$idraw2 = new ImagickDraw();
$idraw2->setFillColor("white");
/* フォント設定 */
$idraw2->setFont('Tahoma');
/* フォントサイズ設定 */
$idraw2->setFontSize(14);
/* gravity設定 */
$idraw2->setGravity(Imagick::GRAVITY_NORTHWEST);
/* 文字列描画 */
$idraw2->annotation(60, 75, "San Francisco");
$im->drawImage($idraw2);

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

$im->writeImage('sample1091a.png');
$im->destroy();
?>
<img src="sample1091a.png" /><br />

</body>
</html>


元画像(sf.jpg)


出力画像(sample1091a.png)
Imagickで立体的な吹き出しを描画した画像

関連項目
ImageMagickで立体的な吹き出しを描画する

Saturday, March 28, 2009

ImageMagickで立体的な吹き出しを描画する

ImageMagickで立体的な吹き出しを描画するには、以下のバッチファイルを実行します。

rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.4.8-Q16
%im%\convert.exe sf.jpg ( -size 200x200 xc:none -fill white -draw "ellipse 100,80,50,30,0,360 polygon 80,100,90,120, 90,100" -shade 135x23 -blur 0x2 -normalize -matte -channel rgba ) -font Tahoma -pointsize 14 -draw "text 60,85 'San Francisco'" -compose overlay -composite sample906b.png

元画像(sf.jpg)


出力画像(sample906b.png)


関連項目
ImageMagickで、半透明グラデーションの吹き出しを描画する
ImageMagickで、明度を変えた吹き出しを描画する
ImageMagickとPHPで立体的な吹き出しを描画する (Imagickによる同様の処理)

Thursday, January 01, 2009

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>sample733(ImageMagick6.4.4)</title>
</head>
<body>
<?php
/* 半透明の吹き出しを描画する */
$im = new Imagick('sf.jpg');

$idraw = new ImagickDraw();
/* 塗りつぶし色設定 */
$idraw->setFillColor('#00000050');
$idraw->roundrectangle(40,50, 160,80, 10,10);
$points[] = array('x' => 100, 'y' => 81);
$points[] = array('x' => 100, 'y' => 91);
$points[] = array('x' => 110, 'y' => 81);
$idraw->polygon($points);
$im->drawImage($idraw);
/* フォント設定 */
$idraw->setFont('Tahoma');
/* フォントサイズ設定 */
$idraw->setFontSize(15);
/* 塗りつぶし色設定 */
$idraw->setFillColor('#ffffffd0');
$im->annotateImage($idraw, 55, 70, 0, "San Francisco");

$im->writeImage('sample733a.png');

$idraw->clear();
$idraw->destroy();
$im->clear();
$im->destroy();
?>
<img src="sample733a.png" />

</body>
</html>

元画像(sf.jpg)


出力画像(sample733a.png)

Friday, February 08, 2008

ImageMagickで、半透明グラデーションの吹き出しを描画する

半透明グラデーションの吹き出しを描画するには、以下のバッチファイルを実行します。

rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.3.7-Q16
%im%\convert.exe -size 200x200 xc:none -matte -channel rgba -fill white
+antialias -draw "roundrectangle 40,50 160,80 10,10 path
'M 100,80 L 100,90 L 110,80 Z" -negate -blur 0x10
( -size 200x200 xc:none -fill white +antialias -draw
"roundrectangle 40,50 160,80 10,10 path 'M 100,80 L 100,90 L 110,80 Z" )
-compose src_in -composite -fill black -gravity northwest -draw
"font-size 15 text 55,58 'San Francisco'" sample303a.png

%im%\convert.exe sf.jpg -geometry +50+50 sample303a.png -composite sample303b.jpg

元画像(sf.jpg)


出力画像(sample303a.png)


関連項目
ImageMagickで、明度を変えた吹き出しを描画する
ImageMagickで吹き出しを作成する - その4

Wednesday, January 23, 2008

ImageMagickで、明度を変えた吹き出しを描画する

明度が暗い吹き出しを描画するには、以下のバッチファイルを実行します。

rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.3.7-Q16
%im%\convert.exe -size 300x225 xc:none -fill white -draw "roundrectangle 40,50 160,80 10,10 path 'M 100,80 L 100,90 L 110,80 Z" sf.jpg -compose src_in -composite -modulate 30 sf.jpg +swap -composite -gravity northwest -draw "font-size 15 text 55,58 'San Francisco'" sample286a.png

元画像(sf.jpg)


出力画像(sample286a.png)


明度が明るい吹き出しを描画するには、以下のバッチファイルを実行します。

%im%\convert.exe -size 300x225 xc:none -fill white -draw "roundrectangle 40,50 160,80 10,10 path 'M 100,80 L 100,90 L 110,80 Z" sf.jpg -compose src_in -composite -modulate 130 sf.jpg +swap -composite -gravity northwest -fill black -draw "font-size 15 text 55,58 'San Francisco'" sample286b.png

出力画像(sample286b.jpg)


関連項目
ImageMagickで、半透明グラデーションの吹き出しを描画する
ImageMagickで吹き出しを作成する - その4
ImageMagickで吹き出しを作成する - その3
ImageMagickで吹き出しを作成する - その2
ImageMagickで吹き出しを作成する - その1

Wednesday, February 28, 2007

ImageMagickで吹き出しを作成する - その4

ImageMagickで影の部分だけ半透明の吹き出しPNG画像を
生成するには、以下のバッチファイルを実行します。

rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.3.1-Q16
%im%\convert.exe -size 200x150 xc:none -fill #fce769 -stroke #f6b739 -strokewidth 4 -draw "roundrectangle 5,5 194,99 20,20" -stroke #fce769 -draw "polygon 70,99 50,149 80,99" -stroke #f6b739 -draw "polyline 60,99 70,99 50,149 80,99 89,99" ( +clone -affine 1,0,0,0.5,0,75 -transform -shear 30x0 -channel RGBA -fx "p!=0?#D0D0D080:0" -blur 0x1 ) +swap -mosaic sample124a.png

出力画像(sample124a.jpg)






以下のコマンドで吹き出し画像を重ね合わせることができます。
%im%\convert.exe sample9.jpg sample124a.png -geometry +30+20 -composite sample124b.jpg

元画像(sample9.jpg)


出力画像(sample124b.jpg)


関連項目
ImageMagickで、半透明グラデーションの吹き出しを描画する
ImageMagickで、明度を変えた吹き出しを描画する


Thursday, December 21, 2006

ImageMagickで吹き出しを作成する - その3

ImageMagickで影付き吹き出しを作成するには
以下のバッチファイルを実行します。

set im=C:\Progra~1\ImageMagick-6.3.0-Q16
%im%\convert.exe -size 200x150 xc:none -fill #fce769 -stroke #f6b739 -strokewidth 4 -draw "roundrectangle 5,5 194,99 20,20" -stroke #fce769 -draw "polygon 70,99 50,149 80,99" -stroke #f6b739 -draw "polyline 60,99 70,99 50,149 80,99 89,99" ( +clone -background #707070 -shadow 97x4+4+4 ) +swap -background #ffffff -mosaic sample44a.gif



影を斜めにつけるには、縦方向をaffine&transformで縮めて、
shearで傾けます。

set im=C:\Progra~1\ImageMagick-6.3.0-Q16
%im%\convert.exe -size 200x150 xc:none -fill #fce769 -stroke #f6b739 -strokewidth 4 -draw "roundrectangle 5,5 194,99 20,20" -stroke #fce769 -draw "polygon 70,99 50,149 80,99" -stroke #f6b739 -draw "polyline 60,99 70,99 50,149 80,99 89,99" ( +clone -background #d0d0d0 -shadow 97x4+4+4 -affine 1,0,0,0.5,0,75 -transform -shear 30x0 ) +swap -background #ffffff -mosaic sample44b.gif



関連項目
ImageMagickで、半透明グラデーションの吹き出しを描画する
ImageMagickで、明度を変えた吹き出しを描画する

Tuesday, December 12, 2006

ImageMagickで吹き出しを作成する - その2

想像などのセリフの吹き出しを作成するには、
以下のようにroundrectangleとcircleで描画できます。

set im=C:\Progra~1\ImageMagick-6.3.0-Q16
%im%\convert.exe -size 200x150 xc:none -fill white -stroke black -draw "roundrectangle 0,0 199,99 20,20 circle 70,110 77,117 circle 60,128 65,133 circle 50,140 53,143" sample27a.gif

出力画像(sample27a.gif)


%im%\convert.exe -size 200x150 xc:none -fill #fce769 -stroke #f6b739 -strokewidth 4 -draw "roundrectangle 5,5 194,99 20,20 circle 70,110 77,117 circle 60,128 65,133 circle 50,140 53,143 " sample27b.gif

出力画像(sample27b.gif)


関連項目
ImageMagickで、半透明グラデーションの吹き出しを描画する
ImageMagickで、明度を変えた吹き出しを描画する

Monday, December 11, 2006

ImageMagickで吹き出しを作成する - その1

ImageMagickで吹き出しを作成するには、
以下のようなバッチファイルで作成することもできます。

吹き出し部分はroundrectangleで描画し、吹き出し線部分はpolylineで描画。
set im=C:\Progra~1\ImageMagick-6.3.0-Q16
%im%\convert.exe -size 200x150 xc:none -fill white -stroke black -draw "roundrectangle 0,0 199,99 20,20 polyline 70,99 50,149 80,99" sample26a.gif

出力結果(sample26a.gif)


色をつけて太く描画する場合は、以下のバッチファイルを実行します。
set im=C:\Progra~1\ImageMagick-6.3.0-Q16
%im%\convert.exe -size 200x150 xc:none -fill #fce769 -stroke #f6b739 -strokewidth 4 -draw "roundrectangle 5,5 194,99 20,20" -stroke #fce769 -draw "polygon 70,99 50,149 80,99" -stroke #f6b739 -draw "polyline 60,99 70,99 50,149 80,99 89,99" sample26b.gif

出力結果(sample26b.gif)


関連項目
ImageMagickで、半透明グラデーションの吹き出しを描画する
ImageMagickで、明度を変えた吹き出しを描画する
ImageMagickで吹き出しを作成する - その4
ImageMagickで吹き出しを作成する - その3
ImageMagickで吹き出しを作成する - その2