Saturday, March 27, 2010

PyOpenGLで20面体を描画する

PyOpenGLで20面体を描画するには、以下のコードを実行します。


#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)
glEnable(GL_NORMALIZE)
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT)
glPushMatrix()
gluLookAt(0,1,10, 0,0,0, 0,1,0)
glRotatef(-10, 0.0, 1.0, 0.0)
glColor3f(float(0xbb)/0xff, float(0xdd)/0xff, 0xff/0xff)
glScalef(3, 3, 3)
glutSolidIcosahedron()
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 26, 2010

PyOpenGLでワイヤーフレームの8面体を描画する

PyOpenGLでワイヤーフレームの8面体を描画するには、以下のコードを実行します。


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

def display():
glEnable(GL_DEPTH_TEST)
glEnable(GL_COLOR_MATERIAL)
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT)
glPushMatrix()
gluLookAt(0,1,10, 0,0,0, 0,1,0)
glRotatef(-10, 0.0, 1.0, 0.0)
glColor3f(float(0xbb)/0xff, float(0xdd)/0xff, 0xff/0xff)
glScalef(3, 3, 3)
glutWireOctahedron()
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

Thursday, March 25, 2010

PyOpenGLで8面体を描画する

PyOpenGLで8面体を描画するには、以下のコードを実行します。


#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)
glEnable(GL_NORMALIZE)
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT)
glPushMatrix()
gluLookAt(0,1,10, 0,0,0, 0,1,0)
glRotatef(-10, 0.0, 1.0, 0.0)
glColor3f(float(0xbb)/0xff, float(0xdd)/0xff, 0xff/0xff)
glScalef(3, 3, 3)
glutSolidOctahedron()
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

Wednesday, March 24, 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 Java2DTest79
{
public static void main(String args[])
throws Exception
{
/* グレースケールのノイズのついた画像に変換する */
BufferedImage img = ImageIO.read(new File("sf.jpg"));
BufferedImage imga = new BufferedImage(
img.getWidth(), img.getHeight(),
BufferedImage.TYPE_INT_ARGB
);

NoiseFilter nf = new NoiseFilter();
img = nf.filter(img, imga);

GrayscaleFilter grf = new GrayscaleFilter();
img = grf.filter(img, null);

DiffuseFilter df = new DiffuseFilter();
df.setScale(1);
img = df.filter(img, null);

ImageIO.write(img, "png", new File("sample1980a.png"));
}
}


元画像(sf.jpg)


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

Tuesday, March 23, 2010

PyOpenGLでワイヤーフレームの球を描画する

PyOpenGLでワイヤーフレームの球を描画するには、以下のコードを実行します。


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

def display():
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)
glColor3f(float(0xbb)/0xff, float(0xdd)/0xff, 0xff/0xff)
glutWireSphere(3.5, 32, 32)
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

Monday, March 22, 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 Java2DTest77
{
public static void main(String args[])
throws Exception
{
/* 織物風に変換 */
BufferedImage img = ImageIO.read(new File("sf.jpg"));
BufferedImage imga = new BufferedImage(
img.getWidth(), img.getHeight(),
BufferedImage.TYPE_INT_ARGB
);

WeaveFilter wf = new WeaveFilter();
img = wf.filter(img, imga);

ImageIO.write(img, "png", new File("sample1978a.png"));
}
}


元画像(sf.jpg)


出力画像(sample1978a.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, March 21, 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)
glColor3f(float(0xbb)/0xff, float(0xdd)/0xff, 0xff/0xff)
glutSolidSphere(3.5, 32, 32)
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

Saturday, March 20, 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 Java2DTest75
{
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
);

// 拡散
DiffuseFilter gf = new DiffuseFilter();
gf.setScale(2);
img = gf.filter(img, imga);

// ガウシアンブラー
GaussianFilter gaf = new GaussianFilter(3f);
img = gaf.filter(img, null);

BufferedImage img2 = ImageIO.read(new File("sf2.jpg"));
ContrastFilter ctf = new ContrastFilter();
ctf.setBrightness(0.7f);
ctf.setContrast(0.7f);
img2 = ctf.filter(img2, imga);

CompositeFilter cf = new CompositeFilter(
MiscComposite.getInstance(MiscComposite.DODGE, 0.5f));
BufferedImage img3 = cf.filter(img2, img);

ImageIO.write(img3, "png", new File("sample1976a.png"));
}
}


元画像(sf2.jpg)


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

Friday, March 19, 2010

PyOpenGLでワイヤーフレームの4面体を描画する

PyOpenGLでワイヤーフレームの4面体を描画するには、以下のコードを実行します。


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

def display():
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(-43, 0.0, 1.0, 0.0)
glColor3f(float(0xbb)/0xff, float(0xdd)/0xff, 0xff/0xff)
glScalef(4,4,4)
glutWireTetrahedron()
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

Thursday, March 18, 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 Java2DTest73
{
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
);
// 拡散
DiffuseFilter gf = new DiffuseFilter();
gf.setScale(3);
img = gf.filter(img, imga);

// モーションブラー
MotionBlurFilter mbf = new MotionBlurFilter(12f, 100f, 0.0f, 0.0f);
img = mbf.filter(img, null);

BufferedImage img2 = new BufferedImage(
img.getWidth(), img.getHeight(),
BufferedImage.TYPE_INT_ARGB
);
ScratchFilter sf = new ScratchFilter();
sf.setAngle(10);
sf.setAngleVariation(0.08f);
sf.setColor(0xff808080);
sf.setDensity(3.9f);
sf.setLength(0.06f);
sf.setWidth(0.7f);
sf.setSeed(2010);

img2 = sf.filter(img2, null);

CompositeFilter cf = new CompositeFilter(
MiscComposite.getInstance(MiscComposite.ADD, 0.25f));

BufferedImage img5 = cf.filter(img2, img);

ImageIO.write(img5, "png", new File("sample1974a.png"));
}
}


元画像(sf2.jpg)


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

Wednesday, March 17, 2010

PyOpenGLで4面体を描画する

PyOpenGLで4面体を描画するには、以下のコードを実行します。


#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)
glEnable(GL_NORMALIZE)
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT)
glPushMatrix()
gluLookAt(0,4,10, 0,0,0, 0,1,0)
glRotatef(-43, 0.0, 1.0, 0.0)
glColor3f(float(0xbb)/0xff, float(0xdd)/0xff, 0xff/0xff)
glScalef(4,4,4)
glutSolidTetrahedron()
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

Tuesday, March 16, 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 Java2DTest71
{
public static void main(String args[])
throws Exception
{
/* 画像をぼやけたセピア調に変換する */
BufferedImage img = ImageIO.read(new File("sf2.jpg"));

// 拡散
DiffuseFilter gf = new DiffuseFilter();
gf.setScale(1);
BufferedImage img2 = gf.filter(img, null);
// メディアンフィルタ
MedianFilter mf = new MedianFilter();
img2 = mf.filter(img2, null);
// グレースケールフィルタ
GrayscaleFilter grf = new GrayscaleFilter();
img2 = grf.filter(img2, null);

// コントラストを150%
ContrastFilter ctf = new ContrastFilter();
ctf.setContrast(1.5f);
img2 = ctf.filter(img2, null);

BufferedImage img3 = new BufferedImage(
img.getWidth(), img.getHeight(),
BufferedImage.TYPE_INT_ARGB
);
FillFilter ff = new FillFilter(0xffffbb33);
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("sample1972a.png"));
}
}


元画像(sf2.jpg)


出力画像(sample1972a.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 15, 2010

PyOpenGLでワイヤーフレームのドーナツ型を描画する

PyOpenGLでワイヤーフレームのドーナツ型を描画するには、以下のコードを実行します。


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

def display():
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(-20, 0.0, 1.0, 0.0)
glColor3f(float(0xbb)/0xff, float(0xdd)/0xff, 0xff/0xff)
glutWireTorus(1.5, 2.5, 32, 32)
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

Sunday, March 14, 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(-20, 0.0, 1.0, 0.0)
glColor3f(float(0xbb)/0xff, float(0xdd)/0xff, 0xff/0xff)
glutSolidTorus(1.5, 2.5, 32, 32)
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

Saturday, March 13, 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 Java2DTest78
{
public static void main(String args[])
throws Exception
{
/* ノイズをつける */
BufferedImage img = ImageIO.read(new File("sf.jpg"));
BufferedImage imga = new BufferedImage(
img.getWidth(), img.getHeight(),
BufferedImage.TYPE_INT_ARGB
);

NoiseFilter nf = new NoiseFilter();
img = nf.filter(img, imga);

ImageIO.write(img, "png", new File("sample1979a.png"));
}
}


元画像(sf.jpg)


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

Friday, March 12, 2010

PyOpenGLでワイヤーフレームの立方体を描画する

PyOpenGLでワイヤーフレームの立方体を描画するには、以下のコードを実行します。


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

def display():
glEnable(GL_DEPTH_TEST)
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)
glutWireCube(3.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

Thursday, March 11, 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 Java2DTest76
{
public static void main(String args[])
throws Exception
{
/* 扇形に変形 */
BufferedImage img = ImageIO.read(new File("sf.jpg"));
BufferedImage imga = new BufferedImage(
img.getWidth(), img.getHeight(),
BufferedImage.TYPE_INT_ARGB
);

CircleFilter cf = new CircleFilter();
cf.setHeight(80);
cf.setAngle(2 * ImageMath.PI * -10 / 360);
cf.setSpreadAngle(2 * ImageMath.PI * 160 / 360);
img = cf.filter(img, imga);

ImageIO.write(img, "png", new File("sample1977a.png"));
}
}


元画像(sf.jpg)


出力画像(sample1977a.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 10, 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)
glutSolidCube(3.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

関連項目
PyOpenGLで ワイヤーフレームの立方体を描画する

Tuesday, March 09, 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 Java2DTest74
{
public static void main(String args[])
throws Exception
{
/* 点画風に変換 */
BufferedImage img = ImageIO.read(new File("sf.jpg"));
BufferedImage imga = new BufferedImage(
img.getWidth(), img.getHeight(),
BufferedImage.TYPE_INT_ARGB
);

// モーションブラー
MotionBlurFilter mbf = new MotionBlurFilter(3f, 100f, 0.0f, 0.0f);
img = mbf.filter(img, null);

// 拡散
DiffuseFilter gf = new DiffuseFilter();
gf.setScale(3);
img = gf.filter(img, imga);

ContrastFilter ctf = new ContrastFilter();
ctf.setBrightness(1.2f);
ctf.setContrast(1.5f);
img = ctf.filter(img, null);

ImageIO.write(img, "png", new File("sample1975a.png"));
}
}


元画像(sf.jpg)


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

Monday, March 08, 2010

PyOpenGLでワイヤーフレームのティーポットを描画する

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


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

def display():
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)
glutWireTeapot(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()


出力画像
PyOpenGLで描画したワイヤーフレームのティーポット

動作環境
python2.6.4, PyOpenGL3.0.0

Sunday, March 07, 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 Java2DTest72
{
public static void main(String args[])
throws Exception
{
/* 引っかいたような画像を作成する */
BufferedImage img = new BufferedImage(
300, 300, BufferedImage.TYPE_INT_ARGB
);
ScratchFilter sf = new ScratchFilter();
sf.setAngle(10);
sf.setAngleVariation(0.8f);
sf.setColor(0xffc0c0c0);
sf.setDensity(0.9f);
sf.setLength(0.5f);
sf.setWidth(0.5f);
sf.setSeed(2009);

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


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

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/

Saturday, February 27, 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 Java2DTest63
{
public static void main(String args[])
throws Exception
{
/* 画像をグレースケールに変換する */
BufferedImage img = ImageIO.read(new File("sf2.jpg"));
GrayscaleFilter gf = new GrayscaleFilter();

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


元画像(sf2.jpg)


出力画像(sample1964a.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, February 26, 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 Java2DTest62
{
public static void main(String args[])
throws Exception
{
/* 画像を絵画っぽく変換する */
BufferedImage img = ImageIO.read(new File("sf2.jpg"));
DiffuseFilter df = new DiffuseFilter();
/* スケール */
df.setScale(3);

OilFilter of = new OilFilter();
/* ピクセルでの効果範囲 */
of.setRange(2);
/* 効果のレベル */
of.setLevels(3);

// 複合フィルタ
CompoundFilter cf = new CompoundFilter(of, df);

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


元画像(sf2.jpg)


出力画像(sample1963a.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, February 25, 2010

processingtとJava Image Filters(pixels)で画像が水面のようにゆらめくアニメーションを表示する

processingとJava Image Filters(pixels)で画像が水面のようにゆらめくアニメーションを表示するには、以下のコードを実行します。Java Image Filtersはhttps://pixels.dev.java.net/servlets/ProjectDocumentListから pixels-core-2.1.3-SNAPSHOT.jarをダウンロードしてSketchのフォルダのcodeサブフォルダに配置するか、 Sketch->Add FilesメニューからSketchに追加します。


PImage img;
SwimFilter sf;
void setup(){
// キャンバスサイズ
img = loadImage("sf2.jpg");
size(img.width, img.height);
// 水面のようなゆらぎ効果をつける
sf = new SwimFilter();
// 効果の量
sf.setAmount(5f);
// スケール
sf.setScale(32f);
// 引き伸ばし
sf.setStretch(5f);
// アングル
sf.setAngle(10f/180f*ImageMath.PI);
// 乱れ
sf.setTurbulence(1f);
}
void draw(){
// 時間
sf.setTime(frameCount/10f);
PImage img2 = new PImage(sf.filter((BufferedImage)img.getImage(), null));
image(img2, 0, 0);
}


元画像(sf2.jpg)


出力画像


動作環境
processing 1.0.9

〇関連項目
・Processingをインストールした仮想マシンを構築するには、以下のページを参照してください。
https://serverarekore.blogspot.com/search/label/Processing

Processing とJava Image Filters(pixels)を使用して画像に水面のようなゆらぎ効果をつける

・Processingに関する他の記事は、こちらを参照してください。

Wednesday, February 24, 2010

processingで3ds形式のモデルを読み込んで表示する

processingで3ds形式のモデルを読み込んで表示するには、以下のコードを実行します。3ds形式のモデルを読み込むには、MRI3DSを使用します。mri3ds.jarをcodeサブディレクトリに配置するか、Sketch->Add FilesメニューからSketchに追加します。

MRI3DSのサイト
http://www.pixelnerve.com/processing/libraries/mri3ds/


import com.sun.opengl.util.*;
import javax.media.opengl.*;
import processing.opengl.*;
import mri.*;

V3dsScene vscene;
GL gl;
void setup()
{
size(400, 300, OPENGL);
ambientLight(255, 255, 255, 0, 50, -400);
gl = ((PGraphicsOpenGL)g).beginGL();
gl.glClearColor(0.0, 0.0, 0.0, 0.0);
vscene = new V3dsScene( this, "STS.3ds" );
}

void draw()
{
gl=((PGraphicsOpenGL)g).beginGL();
gl.glEnable(GL.GL_LIGHTING);
gl.glEnable(GL.GL_LIGHT0);
gl.glDisable(GL.GL_CULL_FACE);
gl.glEnable(GL.GL_NORMALIZE);
gl.glEnable(gl.GL_COLOR_MATERIAL);
gl.glClear(GL.GL_COLOR_BUFFER_BIT |GL.GL_DEPTH_BUFFER_BIT );
((PGraphicsOpenGL)g).endGL();
translate(200, 150, 0);
scale(20, 20, 20);
rotateY(2*PI*frameCount/360);
rotateX(2*PI*frameCount/360/10);
vscene.draw();
}


出力画像


関連情報
モデルデータ
http://www.nasa.gov/multimedia/3d_resources/assets/sts.html

動作環境
processing 1.0.9

〇関連項目
・Processingをインストールした仮想マシンを構築するには、以下のページを参照してください。
https://serverarekore.blogspot.com/search/label/Processing

・Processingに関する他の記事は、こちらを参照してください。

Tuesday, February 23, 2010

processingでフォグを使用する

processingでフォグを使用するには、以下のコードを実行します。


import com.sun.opengl.util.*;
import javax.media.opengl.*; 
import processing.opengl.*;
GL gl;
GLUT glut;
void setup()
{
  size(400, 300, OPENGL);
  ambientLight(128, 128, 128, 0, 0, 300);
//  lights();

  gl = ((PGraphicsOpenGL)g).beginGL();
  glut = new GLUT();
  gl.glClearColor(0.0, 0.0, 0.0, 0.0);
}

void draw()
{
  gl=((PGraphicsOpenGL)g).beginGL();
  gl.glEnable(GL.GL_LIGHTING);
  gl.glEnable(GL.GL_LIGHT0);
  gl.glEnable(GL.GL_CULL_FACE);
  gl.glEnable(GL.GL_NORMALIZE);
  // フォグの設定
  float fog[]={0.1f,0.1f,0.1f,1.0f};
  gl.glFogfv(GL.GL_FOG_COLOR,fog,0);
  gl.glFogi(GL.GL_FOG_MODE,GL.GL_EXP);
  gl.glFogf(GL.GL_FOG_DENSITY, 0.003f);
  gl.glFogf(GL.GL_FOG_START, 0.0f);
  gl.glFogf(GL.GL_FOG_END,800.0f);
  gl.glEnable(GL.GL_FOG);

  gl.glClear(GL.GL_COLOR_BUFFER_BIT |GL.GL_DEPTH_BUFFER_BIT );

  gl.glTranslatef(width/2, height/2+50, -50);
  gl.glPushMatrix();

  gl.glRotatef(-45f, 1.0f, 0.0f, 0.0f);
//  gl.glRotatef(frameCount*3, 0.0f, 1.0f, 0.0f);
  gl.glTranslatef(-120, 0, -480);
  // 面の色を設定
  gl.glColor3f(
    (float)0x77/(float)0xff, 
    (float)0x99/(float)0xff, 
    (float)0xff/(float)0xff
  );
  // 球を描画
  for(int lz=0;lz<20;lz++){
    for(int lx=0;lx<10;lx++){
      gl.glPushMatrix();
      gl.glTranslatef(lx*30, 0, lz*30);
      glut.glutSolidSphere(10f, 16, 16);
      gl.glPopMatrix();
    }
  }
  gl.glPopMatrix();
  ((PGraphicsOpenGL)g).endGL();
}


出力画像


動作環境
processing 1.0.9

〇関連項目
・Processingをインストールした仮想マシンを構築するには、以下のページを参照してください。
https://serverarekore.blogspot.com/search/label/Processing

・Processingに関する他の記事は、こちらを参照してください。

Monday, February 22, 2010

processingとJava Image Filters(pixels)を使用して地形っぽい画像を生成する

processingとJava Image Filters(pixels)を使用して地形っぽい画像を生成するには、以下のコードを実行します。Java Image Filtersはhttps://pixels.dev.java.net/servlets/ProjectDocumentListから pixels-core-2.1.3-SNAPSHOT.jarをダウンロードしてSketchのフォルダのcodeサブフォルダに配置するか、 Sketch->Add FilesメニューからSketchに追加します。


import processing.opengl.*;

PImage img2;
int ix = 200;
int iy = 200;

void setup()
{
// キャンバスサイズ
size(400, 300, OPENGL);
PImage img = new PImage(ix, iy);
// プラズマ画像を生成する
PlasmaFilter pf = new PlasmaFilter();
// 乱れを設定する(0-10)
pf.setTurbulence(1.2f);
// seed設定
//pf.setSeed(1318);
img2 = new PImage(pf.filter((BufferedImage)img.getImage(), null));
img2.loadPixels();
}

void draw()
{
background(0);
lights();
ambientLight(128, 128, 128, 0, -1000, 300);
translate(width/2, height/2);
rotateX(radians(-30));
rotateY(radians(frameCount));
noStroke();
float ox = -400;
float oy = -100;
float oz = -400;
int us = 10;
for(int lx=0;lx<ix-1;lx++){
for(int lz=0;lz<iy-1;lz++){

beginShape(TRIANGLES);
float cx = (lx+0.5)*us;
float cz = (lz+0.5)*us;
float cy = (red(img2.pixels[lz*ix+lx]) +
red(img2.pixels[lz*ix+(lx+1)]) +
red(img2.pixels[(lz+1)*ix+(lx+1)]) +
red(img2.pixels[(lz+1)*ix+lx]) )/4;
//println(cy);
if( cy < 60 ){
fill(color(#dddddd));
} else if( cy < 100 ){
fill(color(#22aa55));
} else if( cy < 130 ){
fill(color(#777733));
} else {
fill(color(#224477));
}
vertex(ox+lx*us, oy+red(img2.pixels[lz*ix+lx]), oz+lz*us);
vertex(ox+(lx+1)*us, oy+red(img2.pixels[lz*ix+(lx+1)]), oz+lz*us);
vertex(ox+cx, oy+cy, oz+cz);

vertex(ox+(lx+1)*us, oy+red(img2.pixels[lz*ix+(lx+1)]), oz+lz*us);
vertex(ox+cx, oy+cy, oz+cz);
vertex(ox+(lx+1)*us, oy+red(img2.pixels[(lz+1)*ix+(lx+1)]), oz+(lz+1)*us);

vertex(ox+(lx+1)*us, oy+red(img2.pixels[(lz+1)*ix+(lx+1)]), oz+(lz+1)*us);
vertex(ox+cx, oy+cy, oz+cz);
vertex(ox+lx*us, oy+red(img2.pixels[(lz+1)*ix+lx]), oz+(lz+1)*us);

vertex(ox+lx*us, oy+red(img2.pixels[(lz+1)*ix+lx]), oz+(lz+1)*us);
vertex(ox+cx, oy+cy, oz+cz);
vertex(ox+lx*us, oy+red(img2.pixels[lz*ix+lx]), oz+lz*us);

endShape();
}
}
}


出力画像


動作環境
processing 1.0.9

〇関連項目
・Processingをインストールした仮想マシンを構築するには、以下のページを参照してください。
https://serverarekore.blogspot.com/search/label/Processing

・Processingに関する他の記事は、こちらを参照してください。

Sunday, February 21, 2010

processingとJava Image Filters(pixels)を使用して万華鏡のような画像が動くアニメーションを表示する

processingとJava Image Filters(pixels)を使用して万華鏡のような画像が動くアニメーションを表示するには、以下のコードを実行します。Java Image Filtersはhttps://pixels.dev.java.net/servlets/ProjectDocumentListから pixels-core-2.1.3-SNAPSHOT.jarをダウンロードしてSketchのフォルダのcodeサブフォルダに配置するか、 Sketch->Add FilesメニューからSketchに追加します。


// キャンバスサイズ
int rad = 0;
PImage img;
KaleidoscopeFilter kf;

void setup(){
img = loadImage("sf2.jpg");
size(img.width, img.height);
// 万華鏡のような画像を生成する
kf = new KaleidoscopeFilter();
// 面数
kf.setSides(6);
// 角度1
kf.setAngle(20f/180f*ImageMath.PI);
// 角度2
kf.setAngle2(50f/180f*ImageMath.PI);
// 半径
kf.setRadius(100);
}

void draw(){
// 中心X
kf.setCentreX(0.5f+0.15*cos(2*PI*rad/360));
// 中心Y
kf.setCentreY(0.5f+0.10*sin(2*PI*rad/360));

PImage img2 = new PImage(kf.filter((BufferedImage)img.getImage(), null));
image(img2, 0, 0);
rad+=6;
}


元画像(sf2.jpg)


出力画像


動作環境
processing 1.0.9
〇関連項目
・Processingをインストールした仮想マシンを構築するには、以下のページを参照してください。
https://serverarekore.blogspot.com/search/label/Processing
Processing とJava Image Filters(pixels)を使用して万華鏡のような画像を作成する
・Processingに関する他の記事は、こちらを参照してください。