Saturday, March 06, 2010

PyOpenGLでティーポットを描画する

PyOpenGLでティーポットを描画するには、以下のコードを実行します。


#coding:utf-8
import sys
from OpenGL.GL import *
from OpenGL.GLU import *
from OpenGL.GLUT import *

def display():
glEnable(GL_LIGHTING)
glEnable(GL_LIGHT0)
glEnable(GL_DEPTH_TEST)
glEnable(GL_COLOR_MATERIAL)
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT)
glPushMatrix()
gluLookAt(0,4,10, 0,0,0, 0,1,0)
glRotatef(-40, 0.0, 1.0, 0.0)
glColor3f(float(0xbb)/0xff, float(0xdd)/0xff, 0xff/0xff)
glutSolidTeapot(2.5)
glPopMatrix()
glFlush()

def reshape(w,h):
glViewport(0, 0, w, h)
glMatrixMode(GL_PROJECTION)
glLoadIdentity()
gluPerspective(45, w/h, 1, 100)
glMatrixMode(GL_MODELVIEW)
glLoadIdentity()

glutInit(sys.argv)
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB | GLUT_DEPTH)
glutInitWindowSize(200, 200)
glutCreateWindow('pyopengl')
glutReshapeFunc(reshape)
glutDisplayFunc(display)
glutMainLoop()


出力画像


動作環境
python2.6.4, PyOpenGL3.0.0

Friday, March 05, 2010

Java2DとJava Image Filters(pixels)を使用して画像にメディアンフィルタをかける

Java2DとJava Image Filters(pixels)を使用して画像にメディアンフィルタをかけるには、以下のコードを実行します。


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

public class Java2DTest70
{
public static void main(String args[])
throws Exception
{
/* 画像にメディアンフィルタをかける */
BufferedImage img = ImageIO.read(new File("sf2.jpg"));
MedianFilter mf = new MedianFilter();

BufferedImage img2 = mf.filter(img, null);
img2 = mf.filter(img2, null);
ImageIO.write(img2, "png", new File("sample1971a.png"));
}
}


元画像(sf2.jpg)


出力画像(sample1971a.png)
Java2DとJava Image Filtersでメディアンフィルタを適用した画像

関連項目
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, March 04, 2010

Java2DとJava Image Filters(pixels)を使用してグラデーションのかかったモノトーン画像に変換する

Java2DとJava Image Filters(pixels)を使用してグラデーションのかかったモノトーン画像に変換するには、以下のコードを実行します。


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

public class Java2DTest69
{
public static void main(String args[])
throws Exception
{
/* 画像を指定した色のグラデーションのかかったモノトーン画像に変換 */
BufferedImage img = ImageIO.read(new File("sf2.jpg"));
BufferedImage imga = new BufferedImage(
img.getWidth(), img.getHeight(),
BufferedImage.TYPE_INT_ARGB
);
GrayscaleFilter gf = new GrayscaleFilter();
BufferedImage img2 = gf.filter(img, imga);

BufferedImage img3 = new BufferedImage(
img.getWidth(), img.getHeight(),
BufferedImage.TYPE_INT_ARGB
);
GradientFilter grf = new GradientFilter(
new Point(0, 0), new Point(0, img.getHeight()),
0xff3070a0, 0xffffff10,
false, GradientFilter.LINEAR,
GradientFilter.INT_SMOOTH);

BufferedImage img4 = grf.filter(img3, null);

CompositeFilter cf = new CompositeFilter(
MiscComposite.getInstance(MiscComposite.BLEND, 0.5f));

BufferedImage img5 = cf.filter(img2, img4);
ImageIO.write(img5, "png", new File("sample1970a.png"));
}
}


元画像(sf2.jpg)


出力画像(sample1970a.png)


関連項目
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, March 03, 2010

Java2DとJava Image Filters(pixels)を使用して円錐グラデーションを描画する

Java2DとJava Image Filters(pixels)を使用して円錐グラデーションを描画するには、以下のコードを実行します。


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

public class Java2DTest67
{
public static void main(String args[])
throws Exception
{
/* 円錐グラデーション画像を作成する */
BufferedImage img = new BufferedImage(
300, 300,
BufferedImage.TYPE_INT_ARGB
);
GradientFilter ff = new GradientFilter(
new Point(150, 150), new Point(300, 300),
0xff7799dd, 0xffffffff,
false, GradientFilter.BICONICAL,
GradientFilter.INT_SMOOTH);

BufferedImage img2 = ff.filter(img, null);
ImageIO.write(img2, "png", new File("sample1968a.png"));
}
}


出力画像(sample1968a.png)
Java2DとJava Image Filtersを使用して描画した円錐グラデーション

関連項目
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, March 02, 2010

Java2DとJava Image Filters(pixels)を使用して放射グラデーションを描画する

Java2DとJava Image Filters(pixels)を使用して放射グラデーションを描画するには、以下のコードを実行します。


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

public class Java2DTest66
{
public static void main(String args[])
throws Exception
{
/* 放射グラデーション画像を作成する */
BufferedImage img = new BufferedImage(
300, 300,
BufferedImage.TYPE_INT_ARGB
);
GradientFilter ff = new GradientFilter(
new Point(100, 100), new Point(200, 100),
0xff7799dd, 0xffffffff,
false, GradientFilter.RADIAL,
GradientFilter.INT_SMOOTH);

BufferedImage img2 = ff.filter(img, null);
ImageIO.write(img2, "png", new File("sample1967a.png"));
}
}


出力画像(sample1967a.png)
Java2DとJava Image Filtersを使用して描画した放射グラデーション

関連項目
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, March 01, 2010

Java2DとJava Image Filters(pixels)を使用してグラデーション画像を作成する

Java2DとJava Image Filters(pixels)を使用してグラデーション画像を作成するには、以下のコードを実行します。


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

public class Java2DTest65
{
public static void main(String args[])
throws Exception
{
/* グラデーション画像を作成する */
BufferedImage img = new BufferedImage(
300, 300,
BufferedImage.TYPE_INT_ARGB
);
GradientFilter ff = new GradientFilter(
new Point(0, 0), new Point(200, 100),
0xff7799dd, 0xffffffff,
false, GradientFilter.LINEAR,
GradientFilter.INT_SMOOTH);

BufferedImage img2 = ff.filter(img, null);
ImageIO.write(img2, "png", new File("sample1966a.png"));
}
}


出力画像(sample1966a.png)


関連項目
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, February 28, 2010

Java2DとJava Image Filters(pixels)を使用して指定した色のモノトーン画像に変換する

Java2DとJava Image Filters(pixels)を使用して指定した色のモノトーン画像に変換するには、以下のコードを実行します。


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

public class Java2DTest64
{
public static void main(String args[])
throws Exception
{
/* 画像を指定した色のモノトーンのイメージに変換する */
BufferedImage img = ImageIO.read(new File("sf2.jpg"));
BufferedImage imga = new BufferedImage(
img.getWidth(), img.getHeight(),
BufferedImage.TYPE_INT_ARGB
);
GrayscaleFilter gf = new GrayscaleFilter();
BufferedImage img2 = gf.filter(img, imga);

BufferedImage img3 = new BufferedImage(
img.getWidth(), img.getHeight(),
BufferedImage.TYPE_INT_ARGB
);
FillFilter ff = new FillFilter(0xff7799dd);
BufferedImage img4 = ff.filter(img3, null);

CompositeFilter cf = new CompositeFilter(
MiscComposite.getInstance(MiscComposite.BLEND, 0.5f));

BufferedImage img5 = cf.filter(img2, img4);
ImageIO.write(img5, "png", new File("sample1965a.png"));
}
}


元画像(sf2.jpg)


出力画像(sample1965a.png)


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