Friday, November 26, 2010

GroovyとThumbnailatorでキャプション付のサムネイルを作成する

GroovyとThumbnailatorでキャプション付のサムネイルを作成するには、以下のコードを実行します。

import java.awt.*
import net.coobird.thumbnailator.*
import net.coobird.thumbnailator.filters.*

Thumbnails.of(new File("SF.JPG"))
.addFilter(new Caption("サンフランシスコ",
new Font("MS ゴシック", Font.PLAIN, 14),
Color.WHITE, 1.0f, Positions.BOTTOM_CENTER, 2))
.size(150, 150)
.toFile(new File("SF_CAPTION.JPG"))


元画像(SF.JPG)


出力画像(SF_CAPTION.JPG)


動作環境
Groovy 1.7.4, JDK6 Update21, Thumbnailator 0.24

関連情報
Thumbnailatorのwebsite
http://code.google.com/p/thumbnailator/

Sunday, November 21, 2010

GroovyとThumbnailatorでサムネイルを作成する

GroovyとThumbnailatorでサムネイルを作成するには、以下のコードを実行します。

import net.coobird.thumbnailator.*

Thumbnails.of(new File("SF.JPG"))
.size(100, 100)
.toFile(new File("SF_THUMBNAIL.JPG"))


元画像(SF.JPG)


出力画像(SF_THUMBNAIL.JPG)


動作環境
Groovy 1.7.4, JDK6 Update21, Thumbnailator 0.24

関連情報
Thumbnailatorのwebsite
http://code.google.com/p/thumbnailator/

Tuesday, November 16, 2010

JavaとThumbnailatorでウォーターマーク付のサムネイルを作成する

JavaとThumbnailatorでウォーターマーク付のサムネイルを作成するには、以下のコードを実行します。

import java.io.*;
import javax.imageio.*;
import net.coobird.thumbnailator.*;

public class Thumbnailator7
{
public static void main(String args[])
throws IOException
{
Thumbnails.of(new File("SF.JPG"))
.size(150, 150)
.watermark(Positions.BOTTOM_RIGHT,
ImageIO.read(new File("yourlogo.png")),
0.7f)
.toFile(new File("SF_WATERMARK.JPG"));
}
}


元画像(SF.JPG)


重ね合わせる画像(yourlogo.png)


出力画像(SF_WATERMARK.JPG)


動作環境
JDK6 Update21, Thumbnailator 0.24

関連情報
Thumbnailatorのwebsite
http://code.google.com/p/thumbnailator/

Thursday, November 11, 2010

JavaとThumbnailatorで回転したサムネイルを作成する

JavaとThumbnailatorで回転したサムネイルを作成するには、以下のコードを実行します。

import java.io.*;
import net.coobird.thumbnailator.*;

public class Thumbnailator6
{
public static void main(String args[])
throws IOException
{
Thumbnails.of(new File("SF.JPG"))
.size(150, 150)
.rotate(20d)
.toFile(new File("ROTATED_SF.JPG"));
}
}


元画像(SF.JPG)


出力画像(ROTATED_SF.JPG)


動作環境
JDK6 Update21, Thumbnailator 0.24

関連情報
Thumbnailatorのwebsite
http://code.google.com/p/thumbnailator/

Saturday, November 06, 2010

JavaとThumbnailatorでアスペクト比を保持せずにサムネイルを作成する

JavaとThumbnailatorでアスペクト比を保持せずにサムネイルを作成するには、以下のコードを実行します。

import java.io.*;
import net.coobird.thumbnailator.*;

public class Thumbnailator5
{
public static void main(String args[])
throws IOException
{
Thumbnails.of(new File("SF2.JPG"))
.size(150, 150)
.keepAspectRatio(false) // デフォルトはtrue
.toFile(new File("SF_KAR.JPG"));
}
}


元画像(SF.JPG)


出力画像(SF_KAR.JPG)


動作環境
JDK6 Update21, Thumbnailator 0.24

関連情報
Thumbnailatorのwebsite
http://code.google.com/p/thumbnailator/

Monday, November 01, 2010

JavaとThumbnailatorでqualityを指定したサムネイルを作成する

JavaとThumbnailatorでqualityを指定したサムネイルを作成するには、以下のコードを実行します。

import java.io.*;
import net.coobird.thumbnailator.*;

public class Thumbnailator4
{
public static void main(String args[])
throws IOException
{
Thumbnails.of(new File("SF.JPG"))
.size(150, 150)
.outputQuality(0.1f)
.toFile(new File("SF_LQ.JPG"));
}
}


元画像(SF.JPG)


出力画像(SF_LQ.JPG)


動作環境
JDK6 Update21, Thumbnailator 0.24

関連情報
Thumbnailatorのwebsite
http://code.google.com/p/thumbnailator/

Wednesday, October 27, 2010

JavaとThumbnailatorで着色したサムネイルを作成する

JavaとThumbnailatorで着色したサムネイルを作成するには、以下のコードを実行します。

import java.awt.*;
import java.io.*;
import net.coobird.thumbnailator.*;
import net.coobird.thumbnailator.filters.*;

public class Thumbnailator3
{
public static void main(String args[])
throws IOException
{
Thumbnails.of(new File("SF.JPG"))
.addFilter(new Colorize(Color.BLACK, 0.5f))
.size(150, 150)
.toFile(new File("SF_GRAY.JPG"));
}
}


元画像(SF.JPG)


出力画像(SF_GRAY.JPG)


動作環境
JDK6 Update21, Thumbnailator 0.24

関連情報
Thumbnailatorのwebsite
http://code.google.com/p/thumbnailator/

Friday, October 22, 2010

JavaとThumbnailatorでキャプション付のサムネイルを作成する

JavaとThumbnailatorでキャプション付のサムネイルを作成するには、以下のコードを実行します。

import java.awt.*;
import java.io.*;
import net.coobird.thumbnailator.*;
import net.coobird.thumbnailator.filters.*;

public class Thumbnailator2
{
public static void main(String args[])
throws IOException
{
Thumbnails.of(new File("SF.JPG"))
.addFilter(new Caption("サンフランシスコ",
new Font("MS ゴシック", java.awt.Font.PLAIN, 14),
Color.WHITE, 1.0f, Positions.BOTTOM_CENTER, 2))
.size(150, 150)
.toFile(new File("SF_CAPTION.JPG"));
}
}


元画像(SF.JPG)


出力画像(SF_CAPTION.JPG)


動作環境
JDK6 Update21, Thumbnailator 0.24

関連情報
Thumbnailatorのwebsite
http://code.google.com/p/thumbnailator/

Sunday, October 17, 2010

GroovyとThumbnailatorで着色したサムネイルを作成する

GroovyとThumbnailatorで着色したサムネイルを作成するには、以下のコードを実行します。

import java.awt.*
import net.coobird.thumbnailator.*
import net.coobird.thumbnailator.filters.*

Thumbnails.of(new File("SF.JPG"))
.addFilter(new Colorize(Color.BLACK, 0.5f))
.size(150, 150)
.toFile(new File("SF_GRAY.JPG"))


元画像(SF.JPG)


出力画像(SF_GRAY.JPG)


動作環境
Groovy 1.7.4, JDK6 Update21, Thumbnailator 0.24

関連情報
Thumbnailatorのwebsite
http://code.google.com/p/thumbnailator/

JavaとThumbnailatorでサムネイルを作成する

JavaとThumbnailatorでサムネイルを作成するには、以下のコードを実行します。

import java.io.*;
import net.coobird.thumbnailator.*;

public class Thumbnailator1
{
public static void main(String args[])
throws IOException
{
Thumbnails.of(new File("SF.JPG"))
.size(100, 100)
.toFile(new File("SF_THUMBNAIL.JPG"));
}
}


元ファイル(SF.JPG)


出力ファイル(SF_THUMBNAIL.JPG)


動作環境
JDK6 Update21, Thumbnailator 0.24

関連情報
Thumbnailatorのwebsite
http://code.google.com/p/thumbnailator/

Sunday, May 30, 2010

groovyとApache Commons Sanselanで画像のメタデータを一覧表示する

groovyとApache Commons Sanselanで画像のメタデータを一覧表示するには、以下のコードを実行します。

import org.apache.sanselan.*

// メタデータ情報を一覧表示する
for( item in Sanselan.getMetadata(new File("your.JPG")).items ){
println item.toString()
}


動作環境
groovy 1.7.1, JDK6 Update19, Apache Commons Sanselan 0.97

関連情報
Apache Commons Sanselanのページ
http://commons.apache.org/sanselan/index.html

Thursday, May 20, 2010

groovyとApache Commons Sanselanで画像フォーマットを推測する

groovyとApache Commons Sanselanで画像フォーマットを推測するには、以下のコードを実行します。

import org.apache.sanselan.*

// フォーマットを推測
println Sanselan.guessFormat(new File("SF.BMP"))
println Sanselan.guessFormat(new File("SF.PNG"))
println Sanselan.guessFormat(new File("SF.TIF"))
println Sanselan.guessFormat(new File("SF.JPG"))
// PNGの拡張子をDATに変換したファイルSF.DAT->PNGとして推測した
println Sanselan.guessFormat(new File("SF.DAT"))


動作環境
groovy 1.7.1, JDK6 Update19, Apache Commons Sanselan 0.97

関連情報
Apache Commons Sanselanのページ
http://commons.apache.org/sanselan/index.html

Monday, May 10, 2010

groovyとApache Commons SanselanでBMPイメージをPNGに変換する

groovyとApache Commons SanselanでBMPイメージをPNGに変換するには、以下のコードを実行します。

import org.apache.sanselan.*

// BMPの読み込み
img = Sanselan.getBufferedImage(new File("SF.BMP"))

// PNGの書き込み
Sanselan.writeImage(img, new File("SF.PNG"),
ImageFormat.IMAGE_FORMAT_PNG, new HashMap())


動作環境
groovy 1.7.1, JDK6 Update19, Apache Commons Sanselan 0.97

関連情報
Apache Commons Sanselanのページ
http://commons.apache.org/sanselan/index.html

Sunday, March 28, 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_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)
glutWireIcosahedron()
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 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/