Saturday, September 27, 2008

ImageMagickで画像を4色グレースケールの画像に減色する

ImageMagickで画像を4色グレースケールの画像に減色するには、以下のバッチファイルを実行します。

rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.4.3-Q16
%im%\convert.exe sf.jpg -colorspace gray -colors 4 sample616a.png

元画像(sf.jpg)


出力画像(sample616a.png)
ImageMagickで4色グレースケールに減色した画像

関連項目
ImageMagickで画像を減色する
ImageMagickとPHPで画像を4色グレースケールに変換する (Imagickでの同様の処理)

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 Java2DTest42
{
public static void main(String args[])
throws Exception
{
/* 立体的な文字を描画する */
BufferedImage img = new BufferedImage(
200, 70, BufferedImage.TYPE_INT_ARGB_PRE
);
Graphics2D gr = img.createGraphics();
gr.setColor(new Color(0xff, 0xff, 0xff, 0xff));
gr.setFont(new Font("Tahoma", Font.BOLD, 50));
gr.drawString("Sample", 5, 50);
gr.dispose();

ChromeFilter cf = new ChromeFilter();
/* effect量 */
cf.setAmount(0.3f);
/* 露光量 */
cf.setExposure(1.0f);
BufferedImage img2 = cf.filter(img, null);

BufferedImage img3 = new BufferedImage(
200, 70, BufferedImage.TYPE_INT_RGB
);
Graphics2D gr2 = img3.createGraphics();
gr2.drawImage(img2,0,0,null);
gr2.dispose();

ImageIO.write(img3, "jpg", new File("sample573a.jpg"));
}
}

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

Friday, September 26, 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>sample640(ImageMagick6.4.2)</title>
</head>
<body>
<?php
/* 画像をタイル配置する */
$im = new Imagick();
$im->newPseudoImage(150,150, "tile:C:\\share\\docs\\20080926b\\flower1.png");
$im->writeImage('sample640a.jpg');

/* $im->clear(); 2008/09/30追記:destroyと同様にClearMagicWandを呼ぶので必要なし */
$im->destroy();
?>
<img src="sample640a.jpg" />

</body>
</html>

元画像(flower1.png)


出力画像(sample640a.jpg)
Imagickでタイル配置した画像

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

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 Java2DTest41
{
public static void main(String args[])
throws Exception
{
/* 市松模様を描画する */

BufferedImage img = new BufferedImage(
200, 200, BufferedImage.TYPE_INT_RGB
);
CheckFilter cf = new CheckFilter();
/* 前景色 */
cf.setForeground(0xffffffff);
/* 背景色 */
cf.setBackground(0xff000000);
/* xサイズ */
cf.setXScale(16);
/* yサイズ */
cf.setYScale(16);
/* あいまいさ */
cf.setFuzziness(20);
/* 角度 */
cf.setAngle(45f/180f*ImageMath.PI);

BufferedImage img2 = cf.filter(img, null);
ImageIO.write(img2, "jpg", new File("sample572a.jpg"));
}
}

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

Thursday, September 25, 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 Java2DTest40
{
public static void main(String args[])
throws Exception
{
/* レンズフレアを描画する */
BufferedImage img = ImageIO.read(new File("sf.jpg"));

FlareFilter ff = new FlareFilter();
/* 描画色 */
ff.setColor(0xffffffff);
/* 輪の太さ */
ff.setRingWidth(1.2f);
/* ベースのeffect量 */
ff.setBaseAmount(0.9f);
/* 輪のeffect量 */
ff.setRingAmount(0.2f);
/* 光線の量 */
ff.setRayAmount(1.4f);
/* 中心 */
ff.setCentre(new Point2D.Float(0.7f, 0.3f));
/* 半径 */
ff.setRadius(70f);
BufferedImage img2 = ff.filter(img, null);
ImageIO.write(img2, "jpg", new File("sample571a.jpg"));
}
}

元画像(sf.jpg)


出力画像(sample571a.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, September 24, 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 Java2DTest39
{
public static void main(String args[])
throws Exception
{
/* 画像を球状に変換する */
BufferedImage img = ImageIO.read(new File("sf.jpg"));

PolarFilter sf = new PolarFilter(PolarFilter.RECT_TO_POLAR);
BufferedImage img2 = sf.filter(img, null);
ImageIO.write(img2, "jpg", new File("sample570a.jpg"));
}
}

元画像(sf.jpg)


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

Tuesday, September 23, 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 Java2DTest38
{
public static void main(String args[])
throws Exception
{
/* 画像を傾ける */
BufferedImage img = ImageIO.read(new File("sf.jpg"));

ShearFilter sf = new ShearFilter();
/* 画像のリサイズをおこなうか */
sf.setResize(true);
/* x角度 */
sf.setXAngle(45f/180f*ImageMath.PI);
BufferedImage img2 = sf.filter(img, null);
ImageIO.write(img2, "jpg", new File("sample569a.jpg"));
}
}

元画像(sf.jpg)


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

Monday, September 22, 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 Java2DTest37
{
public static void main(String args[])
throws Exception
{
/* 等高線をつける */
BufferedImage img = ImageIO.read(new File("sample3b.jpg"));

ContourFilter cf = new ContourFilter();
/* レベル */
cf.setLevels(10);
/* スケール */
cf.setScale(2f);
/* オフセット */
cf.setOffset(0f);

BufferedImage img2 = cf.filter(img, null);
ImageIO.write(img2, "jpg", new File("sample568a.jpg"));
}
}

元画像(sample3b.jpg)


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

ImageMagickとPHPでアニメーションGIFをファイルに保存せず直接出力する

ImageMagickとPHPでアニメーションGIFをファイルに保存せず直接出力するには、以下のコードを実行します。
newImage(200, 40, "white");
$idraw = new ImagickDraw();
/* フォント設定 */
$idraw->setFont('Tahoma');
/* フォントサイズ設定 */
$idraw->setFontSize(30);
/* 塗りつぶし色設定 */
$idraw->setFillColor('#bbddff');
/* gravity設定 */
$idraw->setGravity(Imagick::GRAVITY_NORTH);
$img->annotateImage($idraw, 0, 0, 0, "ImageMagick");
/* フォーマットを設定 */
$img->setImageFormat("gif");
/* ディレイを設定 */
$img->setImageDelay(50);
$img2 = new Imagick();
$img2->newImage(200, 40, "white");
/* フォーマットを設定 */
$img2->setImageFormat("gif");
/* ディレイを設定 */
$img2->setImageDelay(50);
$img->addImage($img2);
Header("Content-Type: image/gif");
echo $img->getImagesBlob();
/* $idraw->clear(); 2008/09/30追記:destroyと同様にClearDrawingWandを呼ぶので必要なし */
$idraw->destroy();
/* $img->clear(); 2008/09/30追記:destroyと同様にClearMagicWandを呼ぶので必要なし */
$img->destroy();
?>

上記コードでは、文字列が点滅するアニメーションを直接返しています。

関連項目
ImageMagickとPHPで画像をファイルとして保存せずに直接出力する

Sunday, September 21, 2008

ImageMagickとPHPで画像をファイルとして保存せずに直接出力する

ImageMagickとPHPで画像をファイルとして保存せずに直接出力するには、以下のコードを実行します。

newImage(200, 40, "white");
$idraw = new ImagickDraw();
/* フォント設定 */
$idraw->setFont('Tahoma');
/* フォントサイズ設定 */
$idraw->setFontSize(30);
/* 塗りつぶし色設定 */
$idraw->setFillColor('#bbddff');
/* gravity設定 */
$idraw->setGravity(Imagick::GRAVITY_NORTH);
$img->annotateImage($idraw, 0, 0, 0, "ImageMagick");
/* フォーマットを設定 */
$img->setImageFormat("jpeg");
Header("Content-Type: image/jpeg");
echo $img->getImageBlob();
/* $idraw->clear(); 2008/09/30追記:destroyと同様にClearDrawingWandを呼ぶので必要なし */
$idraw->destroy();
/* $img->clear(); 2008/09/30追記:destroyと同様にClearMagicWandを呼ぶので必要なし */
$img->destroy();
?>

関連項目
ImageMagickとPHPでアニメーションGIFをファイルに保存せず直接出力する

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 Java2DTest36
{
public static void main(String args[])
throws Exception
{
/* 画像に折り目をつける */
BufferedImage img = ImageIO.read(new File("sf.jpg"));

CurlFilter cf = new CurlFilter();
cf.setTransition(0.10f);
cf.setAngle(210f/180f*ImageMath.PI);
cf.setRadius(4f);
BufferedImage img2 = cf.filter(img, null);
ImageIO.write(img2, "jpg", new File("sample567a.jpg"));
}
}

元画像(sf.jpg)


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