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

Friday, June 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>sample1108(ImageMagick6.5.2)</title>
</head>
<body>
<?php
$im = new Imagick("sf.jpg");
$im2 = $im->clone();
$im2->setImageMatte(true);
$im3 = $im2->fxImage("lightness<0.3?p:0", Imagick::CHANNEL_ALPHA);
$im3->modulateImage(160, 100, 100);
$im->compositeImage($im3, Imagick::COMPOSITE_OVER,
0, 0, Imagick::CHANNEL_ALL);
$im->writeImage('sample1108a.png');
$im3->destroy();
$im2->destroy();
$im->destroy();
?>
<img src="sample1108a.png" /><br />

</body>
</html>


元画像(sf.jpg)


出力画像(sample1108a.png)


関連項目
ImageMagickで画像の暗い部分を明るくする (convertコマンドでの同様の処理)

Saturday, November 22, 2008

Python Imaging Libraryを使用して画像を暗くする

PILを使用して画像を暗くするには、以下のコードを実行します。

# coding=UTF-8
import Image
import ImageEnhance

# 画像を暗くする
img1 = Image.open("sf.jpg")
ieb = ImageEnhance.Brightness(img1)
img2 = ieb.enhance(0.5)
img2.save("sample647a.jpg",quality=80)

元画像(sf.jpg)


出力画像(sample647a.jpg)


関連情報
Python Imaging Libraryまとめ

Friday, November 21, 2008

ImageMagickで画像の一部の矩形領域を明るくする

ImageMagickで画像の一部の矩形領域を明るくするには、以下のバッチファイルを実行します。

rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.4.3-Q16
%im%\convert.exe sf.jpg -region 100x100+50+50 -modulate 120 sample646a.png

元画像(sf.jpg)


出力画像(sample646a.png)


関連項目
ImageMagickで画像の暗い部分を明るくする
ImageMagickで逆光で暗くなった部分(青色部分以外)を明るくする
ImageMagickで画像のレベルを変更する

Sunday, October 12, 2008

ImageMagickで画像のレベルを変更する

ImageMagickで画像のレベルを変更するには、以下のコードを実行します。

rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.4.3-Q16
rem 画像のレベルを明るく調整
%im%\convert.exe sf.jpg -level 0,80%% sample645a.png
rem 画像のレベルを暗く調整
%im%\convert.exe sf.jpg -level 20,100%% sample645b.png

元画像(sf.jpg)


出力画像(sample645a.png)


出力画像(sample645b.png)

Friday, August 29, 2008

Java2DとJava Image Filters(pixels)を使用して輝度・コントラストを変更する

Jerry Huxtableさんが公開しているJava Image Filtersを使用して、輝度・コントラストを変更するには、以下のコードを実行します。

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 Java2DTest20
{
public static void main(String args[])
throws Exception
{
/* 明るさ・コントラストを変更する */
BufferedImage img = ImageIO.read(new File("sf.jpg"));

ContrastFilter cf = new ContrastFilter();
/* 明るさを50%に */
cf.setBrightness(0.5f);
BufferedImage img2 = cf.filter(img, null);
ImageIO.write(img2, "jpg", new File("sample545a.jpg"));

ContrastFilter cf2 = new ContrastFilter();
/* コントラストを150% */
cf2.setContrast(1.5f);
BufferedImage img3 = cf2.filter(img, null);
ImageIO.write(img3, "jpg", new File("sample545b.jpg"));

}
}

元画像(sf.jpg)


出力画像(sample545a.jpg)


出力画像(sample545b.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/

Sunday, August 17, 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>sample535(ImageMagick6.4.2)</title>
</head>
<body>
<?php
/* 角丸四角の領域以外を暗くする */
$im = new Imagick('sf2.jpg');
/* 角丸四角のマスクを作成 */
$im2 = new Imagick();
$im2->newImage($im->getImageWidth(), $im->getImageHeight(), "none");
$idraw = new ImagickDraw();
$idraw->setFillColor('#ffffff');
$idraw->roundrectangle(10,10,214,214,20,20);
$im2->drawImage($idraw);
/* マスクを使用して切り取り */
$im2->compositeImage($im, Imagick::COMPOSITE_IN, 0, 0, Imagick::CHANNEL_ALL);

/* 暗くした画像を生成 */
$im3 = new Imagick('sf2.jpg');
/* $im3->modulateImage(30, 100, 100);
なぜかmodulateImageが上手くいかないのでfxで代用*/
$im3 = $im3->fxImage("p*0.3");
$im3->compositeImage($im2, Imagick::COMPOSITE_DEFAULT, 0, 0);

$im3->writeImage('sample535a.jpg');
/* $idraw->clear(); 2008/09/30追記:destroyと同様にClearDrawingWandを呼ぶので必要なし */
$idraw->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="sample535a.jpg" />

</body>
</html>

元画像(sf2.jpg)


出力画像(sample535a.jpg)


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

関連項目
ImageMagickで、任意の矩形領域、角丸四角、円以外の領域を暗くする (Convertコマンドでの同様の処理)
ImageMagickとPHPで、ぼかした領域以外を暗くする

Thursday, July 31, 2008

RMagickで画像の指定した点から円形のバンド状に明るさを変える

RMagickで画像の指定した点から円形のバンド状に明るさを変えるには、以下のコードを実行します。

require 'RMagick'
include Magick

# 円の中心
cx = 130
cy = 160
# 半径初期値
ir = 30
# 半径増分値
dr = 20
# 明るさ
il = 1.0
# 明るさ増分値
dl = -0.1
# 繰り返し回数
ct = 8
# 読み込み画像名
fn = "sf.jpg"

images = ImageList.new(fn)
images[0].alpha = ActivateAlphaChannel
ct.times do
# マスク画像を作成
mask = Image.new(images[0].columns, images[0].rows){
self.background_color = "none"
}
idr = Draw.new
idr.ellipse(cx, cy, ir, ir, 0, 360)
idr.draw(mask);
# マスクを利用して切り取り
timg = images[0].composite(mask, 0, 0, DstInCompositeOp)
images.insert 1, timg.modulate(il, 1.0, 1.0)
ir += dr
il += dl
end
images[0] = images[0].modulate(il, 1.0, 1.0)
# すべてのイメージを重ね合わせ
img = images.mosaic
img.write("sample517a.png")

exit

元画像(sf.jpg)


出力画像(sample517a.png)


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

Saturday, July 19, 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>sample505(ImageMagick6.4.2)</title>
</head>
<body>
<?php
/* ぼかした矩形領域以外を暗くする */
$im = new Imagick('sf2.jpg');
/* ぼかした矩形領域のマスクを作成 */
$im2 = new Imagick();
$im2->newImage($im->getImageWidth(), $im->getImageHeight(), "none");
$idraw = new ImagickDraw();
$idraw->setFillColor('#ffffff');
$idraw->rectangle(10,10,214,214);
$im2->drawImage($idraw);
$im2->blurImage(10, 10, Imagick::CHANNEL_ALL);
/* マスクを使用して切り取り */
$im2->compositeImage($im, Imagick::COMPOSITE_IN, 0, 0, Imagick::CHANNEL_ALL);

/* 暗くした画像を生成 */
$im3 = new Imagick('sf2.jpg');
/* $im3->modulateImage(30, 100, 100);
なぜかmodulateImageが上手くいかないのでfxで代用*/
$im3 = $im3->fxImage("p*0.3");
$im3->compositeImage($im2, Imagick::COMPOSITE_DEFAULT, 0, 0);

$im3->writeImage('sample505a.jpg');
/* $idraw->clear(); 2008/09/30追記:destroyと同様にClearDrawingWandを呼ぶので必要なし */
$idraw->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="sample505a.jpg" />

</body>
</html>

元画像(sf2.jpg)


出力画像(sample505a.jpg)


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

関連項目
ImageMagickで、任意の矩形領域、角丸四角、円以外の領域をぼかして暗くする (Convertコマンドでの同様の処理)

Friday, July 18, 2008

ImageMagickとPHPで画像の青っぽいところ以外を明るくする

Imagickで画像の青っぽいところ以外を明るくするには、以下のコードを実行します。

</head>
<body>
<?php
/* 画像の青っぽい所以外を明るくする */
$im = new Imagick('tree1.jpg');
$im->setImageMatte(true);
$im2=$im->fxImage('(hue>0.47&&hue<0.69&&lightness>0.45)?0:1', Imagick::CHANNEL_ALPHA);
$im2->modulateImage(180, 100, 100);
$im3 = new Imagick('tree1.jpg');
$im3->compositeImage($im2, Imagick::COMPOSITE_DEFAULT, 0, 0);

$im3->writeImage('sample503a.jpg');
/* $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="sample503a.jpg" />

</body>
</html>

元画像(tree1.jpg)


出力画像(sample503a.jpg)


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

Tuesday, July 08, 2008

JMagickで画像の指定した点から円形のバンド状に明るさを変える

JMagickで画像の指定した点から円形のバンド状に明るさを変えるには、以下のコードを実行します。

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

public class JMagickTest40
{
public static void main(String args[])
throws MagickException
{
/* 画像の指定した点から円形のバンド状に明るさを変える */
/* 円の中心 */
int cx = 130;
int cy = 160;
/* 半径初期値 */
int ir = 30;
/* 半径増分値 */
int dr = 20;
/* 明るさ */
int il = 100;
/* 明るさ増分値 */
int dl = -10;
/* 繰り返し回数 */
int ct = 8;
/* 読み込み画像名 */
String fn = "sf.jpg";

MagickImage images[] = new MagickImage[ct+1];
images[0] = new MagickImage(new ImageInfo(fn));
int w = (int)images[0].getDimension().getWidth();
int h = (int)images[0].getDimension().getHeight();
int lc = 0;
for(lc=ct;lc>=1;lc--){
MagickImage mi = new MagickImage(new ImageInfo(fn));
/* 円形に切り取るマスクを作成 */
ImageInfo ii = new ImageInfo("xc:none");
ii.setSize(w + "x" + h);
DrawInfo di = new DrawInfo(ii);
di.setFill(PixelPacket.queryColorDatabase("white"));
di.setPrimitive("ellipse " + cx + "," + cy + "," +
ir + "," + ir + ",0,360");
images[lc] = new MagickImage(ii);
images[lc].drawImage(di);
/* マスクを使用して切り取り */
images[lc].compositeImage(CompositeOperator.SrcInCompositeOp,
mi,0,0);
images[lc].modulateImage(il + ",100,100");
ir += dr;
il += dl;
}
images[0].modulateImage(il + ",100,100");
/* すべてのイメージを重ね合わせ */
for(lc=1;lc<=ct;lc++){
images[0].compositeImage(CompositeOperator.SrcOverCompositeOp,
images[lc], 0, 0);
}
images[0].setFileName("sample492a.jpg");
images[0].writeImage(new ImageInfo());
}
}

元画像(sf.jpg)


出力画像(sample492a.jpg)


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


関連情報
JMagickまとめ
JMagickで、明度・彩度・色相を変更する

Wednesday, June 25, 2008

RMagickを使用して画像の指定の角丸四角の領域以外を暗くする

RMagickを使用して指定の角丸四角の領域以外を暗くするには、以下のコードを実行します。

require 'RMagick'
include Magick

# 暗くしない部分を切り取り
img1 = ImageList.new("sf2.jpg")
img2 = Image.new(img1.columns, img1.rows){
self.background_color = "none"
}
img1.alpha = ActivateAlphaChannel
dr = Draw.new
dr.fill = "white"
dr.roundrectangle(10,10,209,209, 20, 20)
dr.draw(img2);
img3 = img1.composite(img2, 0, 0, DstInCompositeOp);

# 暗くする部分を作成
img4 = ImageList.new("sf2.jpg")
img5 = img4.modulate(0.3, 1.0, 1.0)

# 重ね合わせ
img6 = img5.composite(img3, NorthWestGravity, 0, 0, OverCompositeOp);
img6.write("sample470a.jpg")

exit

元画像(sf2.jpg)


出力画像(sample470a.jpg)



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

関連項目
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コマンド)

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

Saturday, January 19, 2008

ImageMagickで、任意の矩形領域、角丸四角、円以外の領域をぼかして暗くする

任意の矩形領域、角丸四角、円以外の領域をぼかして暗くするには、
以下のバッチファイルを実行します。

rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.3.7-Q16
rem 任意の矩形以外を暗くする
%im%\convert.exe -size 300x225 xc:none -matte -channel rgba -fill white -draw "rectangle 10,10,204,214" -blur 0x10 sf2.jpg -compose src_in -composite ( sf2.jpg -modulate 30 ) +swap -composite sample284a.png

元画像(sf2.jpg)


出力画像(sample284a.png)


rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.3.7-Q16
rem 任意の角丸四角以外を暗くする
%im%\convert.exe -size 300x225 xc:none -matte -channel rgba -fill white -draw "roundrectangle 10,10,204,214,20,20" -blur 0x10 sf2.jpg -compose src_in -composite ( sf2.jpg -modulate 30 ) +swap -composite sample284b.png

出力画像(sample284b.png)


rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.3.7-Q16
rem 任意の円以外を暗くする
%im%\convert.exe -size 300x225 xc:none -matte -channel rgba -fill white -draw "ellipse 130,110,100,100,0,360" -blur 0x10 sf2.jpg -compose src_in -composite ( sf2.jpg -modulate 30 ) +swap -composite sample284c.png

出力画像(sample284c.png)


関連項目
ImageMagickで、任意の矩形領域、角丸四角、円以外の領域を暗くする

Sunday, January 13, 2008

ImageMagickで逆光で暗くなった部分(青色部分以外)を明るくする - その2

逆光で暗くなった部分(青色部分以外)を明るくするには、以下のバッチファイルを実行します。

rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.3.7-Q16
%im%\convert.exe tree1.jpg -matte -channel a -fx "(hue>0.47&&hue<0.69&&luminosity>0.5)?0:1"
-channel rgb -modulate 180 tree1.jpg +swap -composite sample276a.jpg

上記のバッチでは、青色以外の部分を-modulateオプションで明るくしています。

元画像(tree1.jpg)


出力画像(sample276a.jpg)


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

関連項目
ImageMagickで逆光で暗くなった部分(青色部分以外)を明るくする

Tuesday, January 08, 2008

ImageMagickで、任意の矩形領域、角丸四角、円以外の領域を暗くする

画像の任意の矩形領域以外を暗くするには、以下のバッチファイルを実行します。

rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.3.7-Q16
rem 任意の矩形以外を暗くする
%im%\convert.exe -size 300x225 xc:none -fill white -draw "rectangle 10,10,204,214" sf2.jpg -compose src_in -composite ( sf2.jpg -modulate 30 ) +swap -composite sample283a.png

元画像(sf2.jpg)


出力画像(sample283a.png)


任意の角丸四角以外の領域を暗くするには、以下のバッチファイルを実行します。
rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.3.7-Q16
rem 任意の角丸四角以外を暗くする
%im%\convert.exe -size 300x225 xc:none -fill white -draw "roundrectangle 10,10,204,214,20,20" sf2.jpg -compose src_in -composite ( sf2.jpg -modulate 30 ) +swap -composite sample283b.png

出力画像(sample283b.png)


任意の円の領域以外を暗くするには、以下のバッチファイルを実行します。
rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.3.7-Q16
rem 任意の円以外を暗くする
%im%\convert.exe -size 300x225 xc:none -fill white -draw "ellipse 130,110,100,100,0,360" sf2.jpg -compose src_in -composite ( sf2.jpg -modulate 30 ) +swap -composite sample283c.png

出力画像(sample283c.png)

Saturday, December 29, 2007

ImageMagickで画像の暗い部分を明るくする

画像の暗い部分を明るくするには、以下のバッチファイルを実行します。

rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.3.7-Q16
%im%\convert.exe sf.jpg ( sf.jpg -matte -channel a -fx "luminosity<0.4?p:0" -modulate 160 ) -composite sample259a.png
元画像(sf.jpg)


出力画像(sample259a.png)

街路樹や影になっている部分が明るくなっています。

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

関連項目
ImageMagickとPHPで画像の暗い部分を明るくする (Imagickによる同様の処理)

Thursday, August 23, 2007

ImageMagickで逆光で暗くなった部分(青色部分以外)を明るくする

ImageMagickで逆光で暗くなった部分(青色部分以外)を明るくするには、
以下のバッチを実行します。

rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.3.5-Q16
%im%\convert.exe tree1.jpg -channel a -fx "(hue>0.47&&amp;hue<0.69&&luminosity>0.5)?0:1" -channel rgb -fx "(hue>0.47&&amp;hue<0.69&&luminosity>0.3)?0:p*2" tree1.jpg +swap -composite sample198a.jpg

上記のバッチでは、青色部分以外のところのピクセル値を2倍にしています。

元画像(tree1.jpg)


出力画像(sample198a.jpg)


2008/01/04追記
ver6.3.7では、以下のバッチのように-matteを追加します。
rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.3.7-Q16
%im%\convert.exe tree1.jpg -matte -channel a -fx "(hue>0.47&&hue<0.69&&luminosity>0.5)?0:1" -channel rgb -fx "(hue>0.47&&hue<0.69&&luminosity>0.3)?0:p*2" tree1.jpg +swap -composite sample198a.jpg

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

関連項目
ImageMagickで逆光で暗くなった部分(青色部分以外)を明るくする - その2

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&&amp;hue<0.69&&luminosity>0.5)?1:0" -channel rgba -modulate 150 sf.jpg +swap -composite sample193a.jpg

元画像(sf.jpg)


青い部分だけが明るくなった画像が生成されます。
出力画像(sample193a.jpg)


青色っぽい部分を暗くする場合は、以下のバッチを実行します。
%im%\convert.exe sf.jpg -channel a -fx "(hue>0.47&&amp;hue<0.69&&luminosity>0.5)?1:0" -channel rgba -modulate 70 sf.jpg +swap -composite sample193b.jpg

出力画像(sample193b.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 150 sf.jpg +swap -composite sample193a.jpg
%im%\convert.exe sf.jpg -matte -channel a -fx "(hue>0.47&&hue<0.69&&luminosity>0.5)?1:0" -channel rgba -modulate 70 sf.jpg +swap -composite sample193b.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 150 sf.jpg +swap -composite sample193a.jpg
%im%\convert.exe sf.jpg -matte -channel a -fx "(hue>0.47&&hue<0.69&&lightness>0.4)?1:0" -channel rgba -modulate 70 sf.jpg +swap -composite sample193b.jpg