Showing posts with label 彩度. Show all posts
Showing posts with label 彩度. Show all posts

Saturday, June 13, 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>sample1112(ImageMagick6.5.2)</title>
</head>
<body>
<?php
/* 分割数 */
$divx=3;
$divy=3;
/* 彩度の範囲 */
$minsa=100;
$maxsa=150;
$minsb=30;
$maxsb=80;


$im = new Imagick("sf.jpg");
$iw = $im->getImageWidth();
$ih = $im->getImageWidth();
$bw = floor($iw/$divx);
$bh = floor($ih/$divy);
for($ly=0;$ly<$divy;$ly++){
for($lx=0;$lx<$divx;$lx++){
$tbw=($lx==$divx-1)?$iw-($divx-1)*$bw:$bw;
$tbh=($ly==$divy-1)?$ih-($divy-1)*$bh:$bh;
$tim = $im->clone();
$tim->cropImage($tbw, $tbh,
$bw*$lx, $bh*$ly);
if( ($ly*$divx+$lx)%2 == 0 ){
$tim->modulateImage(100,
rand($minsa,$maxsa), 100);
} else {
$tim->modulateImage(100,
rand($minsb,$maxsb), 100);
}
$im->compositeImage($tim, Imagick::COMPOSITE_OVER,
$bw*$lx, $bh*$ly, Imagick::CHANNEL_ALL);
$tim->destroy();
}
}
$im->writeImage('sample1112a.png');
$im->destroy();
?>
<img src="sample1112a.png" /><br />

</body>
</html>


元画像(sf.jpg)


出力画像(sample1112a.png)
Imagickで画像を分割してランダムに彩度を変えた画像

Saturday, February 28, 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>sample889(ImageMagick6.4.8)</title>
</head>
<body>
<?php
/* 画像を彩度の異なるボーダー画像にする */
$im = new Imagick("sf.jpg");
/* 最小ボーダー高さ */
$minh = 5;
/* 最大ボーダー高さ */
$maxh = 20;
/* 最小彩度 */
$minsat = 30;
/* 細大彩度 */
$maxsat = 130;

$ly = 0;
while($ly<$im->getImageHeight()){
$height = rand($minh,$maxh);
if( ($height+$ly) > $im->getImageHeight() ){
$height = $im->getImageHeight() - $ly;
}
/* イメージを切り取り */
$imt = $im->getImageRegion($im->getImageWidth(),
$height,
0, $ly);
$imt->modulateImage(100, rand($minsat, $maxsat), 100);
$im->compositeImage($imt,
Imagick::COMPOSITE_DEFAULT, 0, $ly, Imagick::CHANNEL_ALL);
$ly += $height;
$imt->destroy();
}
$im->writeImage('sample889a.png');
$im->destroy();
?>
<img src="sample889a.png" /><br />

</body>
</html>


元画像(sf.jpg)


出力画像(sample889a.png)


関連項目
ImageMagickとPHPで青色っぽい部分とそれ以外の部分を色付けする

Wednesday, January 28, 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>sample742(ImageMagick6.4.4)</title>
</head>
<body>
<?php
/* 画像で黄色っぽいところ以外を白黒にして、黄色部分をにじませる */
$im = new Imagick("sf.jpg");
$im->modulateImage(80, 20, 100);
$im2 = new Imagick("sf.jpg");
$im2->setImageMatte(true);
$im3 = $im2->fxImage("(hue>0.11&&hue<0.19&&intensity<0.93&&saturation>0.5)?1:0", Imagick::CHANNEL_ALPHA);
$im3->modulateImage(100, 150, 100);
$im4 = new Imagick("sf.jpg");
$im4->setImageMatte(true);
$im5 = $im4->fxImage("(hue>0.11&&hue<0.19&&intensity<0.93&&saturation>0.5)?0.9:0", Imagick::CHANNEL_ALPHA);
$im5->blurImage(5,10,Imagick::CHANNEL_ALL);

$im->compositeImage($im3, Imagick::COMPOSITE_DEFAULT, 0, 0);
$im->compositeImage($im5, Imagick::COMPOSITE_DEFAULT, 0, 0);

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

</body>
</html>

元画像(sf.jpg)


出力画像(sample742a.png)


関連項目
ImageMagickとPHPで複数の画像の境界をぼかして連結する
ImageMagickとPHPで画像をグレースケールの立体的な角丸四角に変換する
ImageMagickで黄色だけを強調してにじませる (convertコマンドによる同様の処理)

Wednesday, January 21, 2009

groovyで画像の彩度を上げる

groovyで画像の彩度を上げるには、以下のコードを実行します。


import groovy.swing.j2d.*

def gr = new GraphicsRenderer()
gr.renderToFile("sample864a.png", 200, 200){
antialias("on")
rect( x: 0, y: 0, width: 200, height: 200,
borderColor: no){
texturePaint(x: 0, y: 0, file: 'sf.jpg' )
filters {
saturation(amount:1.5);
}
}
}


元画像(sf.jpg)


出力画像(sample864a.png)
groovyで彩度を上げた画像

動作環境
Groovy1.6.0 Beta2, JDK1.6 Update11

関連項目
groovyで引っかいたような背景画像を作成する
groovyで画像をさまざまなパターンで塗りつぶす
groovyで画像を感光させたように加工する

Sunday, June 22, 2008

JMagickで画像の彩度を右方向へ徐々に落とす

JMagickで画像の彩度を右方向へ徐々に落とすには、以下のコードを実行します。

import java.awt.*;
import magick.*;

public class JMagickTest37
{
public static void main(String args[])
throws MagickException
{
/* 元画像のサイズ取得 */
MagickImage mi = new MagickImage(new ImageInfo("sf.jpg"));
int iw = (int)mi.getDimension().getWidth();
int ih = (int)mi.getDimension().getHeight();
/* 半透明グラデーションを作成 */
ImageInfo ii = new ImageInfo("gradient:#00000000-#ffffffff");
ii.setSize(ih + "x" + iw);
MagickImage mi2 = new MagickImage(ii);
MagickImage mi3 = mi2.rotateImage(90);
mi.compositeImage(CompositeOperator.CopyOpacityCompositeOp,mi3,0,0);

/* 彩度をおとした画像を生成 */
MagickImage mi4 = new MagickImage(new ImageInfo("sf.jpg"));
mi4.modulateImage("100,10,100");

mi4.compositeImage(CompositeOperator.SrcOverCompositeOp,mi,0,0);

mi4.setFileName("sample473a.jpg");
mi4.writeImage(new ImageInfo());
}
}

元画像(sf.jpg)


出力画像(sample473a.jpg)


環境
JDK6 Upadate6(JDK1.6.0_06)/jmagick-win-6.3.9-Q16


関連情報
JMagickまとめ
ImageMagickをJavaから使用するための設定(JMagickインストール)
ImageMagickで、上・下・左・右に徐々に彩度を落とす (Convertコマンドによる同様の処理)

Saturday, May 17, 2008

JMagickで、明度・彩度・色相を変更する

JMagickで、明度・彩度・色相を変更するには、以下のコードを実行します。


import magick.*;

public class JMagickTest2
{
public static void main(String args[])
throws MagickException
{
/* 明度を70に設定 */
MagickImage mi = new MagickImage(new ImageInfo("SF.jpg"));
mi.modulateImage("70,100,100");
mi.setFileName("sample423a.jpg");
mi.writeImage(new ImageInfo());

/* 彩度を150に設定 */
MagickImage mi2 = new MagickImage(new ImageInfo("SF.jpg"));
mi2.modulateImage("100,150,100");
mi2.setFileName("sample423b.jpg");
mi2.writeImage(new ImageInfo());

/* 色相を10に設定 */
MagickImage mi3 = new MagickImage(new ImageInfo("SF.jpg"));
mi3.modulateImage("100,100,10");
mi3.setFileName("sample423c.jpg");
mi3.writeImage(new ImageInfo());
}
}


元画像(sf.jpg)


出力画像(sample423a.jpg)


出力画像(sample423b.jpg)


出力画像(sample423c.jpg)


環境
JDK6 Upadate6(JDK1.6.0_06)/jmagick-win-6.3.9-Q16


関連情報
JMagickまとめ
ImageMagickをJavaから使用するための設定(JMagickインストール)

Thursday, May 01, 2008

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>sample374</title>
</head>
<body>
<?php
/* 明度を70に設定 */
$im = new Imagick('sf.jpg');
$im->modulateImage(70,100,100);
$im->writeImage('sample374a.jpg');
/* $im->clear(); 2008/09/30追記:destroyと同様にClearMagicWandを呼ぶので必要なし */
$im->destroy();

/* 彩度を150に設定 */
$im = new Imagick('sf.jpg');
$im->modulateImage(100,150,100);
$im->writeImage('sample374b.jpg');
/* $im->clear(); 2008/09/30追記:destroyと同様にClearMagicWandを呼ぶので必要なし */
$im->destroy();

/* 色相を10に設定 */
$im = new Imagick('sf.jpg');
$im->modulateImage(100,100,10);
$im->writeImage('sample374c.jpg');
/* $im->clear(); 2008/09/30追記:destroyと同様にClearMagicWandを呼ぶので必要なし */
$im->destroy();

?>

<img src="sample374a.jpg" />
<img src="sample374b.jpg" />
<img src="sample374c.jpg" />
</body>
</html>

元画像(sf.jpg)


出力画像1(sample374a.jpg)


出力画像2(sample374b.jpg)


出力画像3(sample374c.jpg)


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

関連項目
ImageMagickで明るさを変更する (Convertコマンド)
ImageMagickで彩度を変える  (Convertコマンド)
ImageMagickで色相を変える (Convertコマンド)

Tuesday, January 15, 2008

ImageMagickで、上・下・左・右に徐々に彩度を落とす

右に徐々に彩度を落としていく場合は、以下のバッチファイルを実行します。

rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.3.7-Q16
rem 右に徐々に彩度を落としていく場合
%im%\convert.exe sf.jpg ( sf.jpg -modulate 100,10 -matte -channel A -fx "i/w" ) -composite sample278a.png

元画像(sf.jpg)


出力画像(sample278a.png)


左側に徐々に彩度を落としていく場合は、以下のコマンドを実行します。
rem 左に徐々に彩度を落としていく場合
%im%\convert.exe sf.jpg ( sf.jpg -modulate 100,10 -matte -channel A -fx "(w-i)/w" ) -composite sample278b.png

出力画像(sample278b.png)


rem 下に徐々に彩度を落としていく場合
%im%\convert.exe sf.jpg ( sf.jpg -modulate 100,10 -matte -channel A -fx "j/h" ) -composite sample278c.png

出力画像(sample278c.png)


rem 上に徐々に彩度を落としていく場合
%im%\convert.exe sf.jpg ( sf.jpg -modulate 100,10 -matte -channel A -fx "(h-j)/h" ) -composite sample278d.png

出力画像(sample278d.png)


関連項目
JMagickで画像の彩度を右方向へ徐々に落とす

Sunday, December 09, 2007

ImageMagickで、描画した円部分以外の所の彩度を落とす

描画した円部分以外の所の彩度を落とすには、以下のバッチファイルを実行します。

rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.3.6-Q16
%im%\convert.exe -size 200x200 xc:none -matte -channel rgba -fill white -draw
"ellipse 50,140 35,35 0,360 ellipse 110,90 25,25 0,360 ellipse 160,50 20,20 0,360"
sf.jpg -compose srcin -composite ( sf.jpg -modulate 100,20 ) +swap -composite sample253.png

上記のバッチファイルでは、画像を3つの円で切り取り、彩度を下げた画像と重ね合わせています。

元画像(sf.jpg)


出力画像(sample253.png)

Friday, November 23, 2007

ImageMagickで黄色だけを強調してにじませる

黄色だけ強調してにじませるには、以下のバッチファイルを実行します。

rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.3.6-Q16
%im%\convert.exe sf.jpg -modulate 80,20 ( sf.jpg -matte -channel a
-fx "(hue>0.11&&hue<0.19&&intensity<0.93&&saturation>0.5)?1:0"
-channel rgb -modulate 100,150 -channel rgba ) -composite ( sf.jpg -matte -channel a
-fx "(hue>0.11&&hue<0.19&&intensity<0.93&&saturation>0.5)?0.9:0"
-channel rgba -blur 5x10 ) -composite sample248a.png

バッチファイルでは、黄色以外を若干暗めにして彩度を落とし、黄色では彩度を強め、黄色の
部分にぼかしをかけた画像を重ね合わせています。


元画像(sf.jpg)


出力画像(sample248a.png)


関連項目
ImageMagickとPHPで黄色だけを強調してにじませる (Imagickによる同様の処理)

Monday, September 17, 2007

ImageMagickで画像の緑っぽい部分を彩度を上げて、それ以外の色の部分の彩度を下げる

画像の緑っぽい部分を彩度を上げて、それ以外の色の部分の彩度を下げるには、
以下のバッチファイルを実行します。

rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.3.5-Q16
%im%\convert.exe sample8.jpg -matte -channel a -fx "(hue>0.19&&hue<0.47&&intensity<0.93)?1:0" -channel RGB -modulate 100,180 ( sample8.jpg -modulate 100,40 ) +swap -composite sample224.jpg

元画像(sample8.jpg)


出力画像(sample224.jpg)


関連項目
ImageMagickで青色っぽい部分の彩度を上げる・下げる

Friday, August 17, 2007

ImageMagickで青色っぽい部分の彩度を上げる・下げる

ImageMagickで青色っぽい部分の彩度を上げる・下げるには、
以下のバッチを実行します。

rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.3.5-Q16
%im%\convert.exe sf.jpg -channel a -fx "(hue>0.47&&hue<0.69&&luminosity>0.5)?1:0" -channel rgba -modulate 100,150 sf.jpg +swap -composite sample192a.jpg

元画像(sf.jpg)


出力画像(sample192a.jpg):青空がより青くなって澄んだ感じに。


彩度を下げると、湿気のあるような空の色になります。
%im%\convert.exe sf.jpg -channel a -fx "(hue>0.47&&hue<0.69&&luminosity>0.5)?1:0" -channel rgba -modulate 100,30 sf.jpg +swap -composite sample192b.jpg

出力画像(sample192b.jpg)


2008/01/04追記
ver6.3.7では、以下のバッチファイルのように-matteを追加します。
rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.3.7-Q16
%im%\convert.exe sf.jpg -matte -channel a -fx "(hue>0.47&&hue<0.69&&luminosity>0.5)?1:0" -channel rgba -modulate 100,150 sf.jpg +swap -composite sample192a.jpg
%im%\convert.exe sf.jpg -matte -channel a -fx "(hue>0.47&&hue<0.69&&luminosity>0.5)?1:0" -channel rgba -modulate 100,30 sf.jpg +swap -composite sample192b.jpg

2008/07/13追記
ver6.4.0あたりからluminosityからlightnessに変わったので、以下のバッチを実行します。
rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.4.2-Q16
%im%\convert.exe sf.jpg -matte -channel a -fx "(hue>0.47&&hue<0.69&&lightness>0.4)?1:0" -channel rgba -modulate 100,150 sf.jpg +swap -composite sample192a.jpg
%im%\convert.exe sf.jpg -matte -channel a -fx "(hue>0.47&&hue<0.69&&lightness>0.4)?1:0" -channel rgba -modulate 100,30 sf.jpg +swap -composite sample192b.jpg

関連項目
ImageMagickで画像の緑っぽい部分の彩度を上げて、それ以外の色の部分の彩度を下げる