Thursday, December 09, 2010

PHPとGDで画像をグレースケールに変換する

PHPとGDで画像をグレースケールに変換するには、以下のコードを実行します。

<!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>gd_test2</title>
</head>
<body>
<?php
// 入力ファイル名
$fn = "sf.jpg";
// 入力ファイルサイズ取得
$img = imagecreatefromjpeg($fn);
$sx = imagesx($img);
$sy = imagesy($img);
// 出力ファイルサイズ
$ox = 100;
$oy = 100;
// イメージをグレースケールにする
if($img && imagefilter($img, IMG_FILTER_GRAYSCALE)){
// ファイル出力
imagejpeg($img, "gd_test2.jpg", 100);
// 開放
imagedestroy($img);
}
?>
<img src="gd_test2.jpg" /><br />

</body>
</html>



元画像


出力画像


動作環境
Apache httpd 2.2.17, PHP5.3.3

Monday, December 06, 2010

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

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

import net.coobird.thumbnailator.*

Thumbnails.of(new File("SF2.JPG"))
.size(150, 150)
.keepAspectRatio(false) // デフォルトはtrue
.toFile(new File("SF_KAR.JPG"))


元画像(SF2.JPG)


出力画像(SF_KAR.JPG)


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

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

Friday, December 03, 2010

PHPとGDで画像をリサイズする

PHPとGDで画像をリサイズするには、以下のコードを実行します。

<!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>gd_test1</title>
</head>
<body>
<?php
// 入力ファイル名
$fn = "sf.jpg";
// 入力ファイルサイズ取得
$img = imagecreatefromjpeg($fn);
$sx = imagesx($img);
$sy = imagesy($img);
// 出力ファイルサイズ
$ox = 100;
$oy = 100;
// リサイズ
$img2 = imagecreatetruecolor($ox, $oy);
imagecopyresampled($img2, $img, 0, 0, 0, 0, $ox, $oy, $sx, $sy);
// ファイル出力
imagejpeg($img2, "gd_test1.jpg", 100);
// 開放
imagedestroy($img);
?>
<img src="gd_test1.jpg" /><br />

</body>
</html>



元画像


出力画像


動作環境
Apache httpd 2.2.17, PHP5.3.3

Wednesday, December 01, 2010

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

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

import net.coobird.thumbnailator.*

Thumbnails.of(new File("SF.JPG"))
.size(150, 150)
.outputQuality(0.1f)
.toFile(new File("SF_LQ.JPG"))


元画像(SF.JPG)


出力画像(SF_LQ.JPG)


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

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

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