Showing posts with label 変形. Show all posts
Showing posts with label 変形. Show all posts

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/

Saturday, May 16, 2009

im4javaで画像を波型に揺らす

im4javaで画像を波型に揺らすには、以下のコードを実行します。


import java.util.*;
import org.im4java.core.*;
import org.im4java.process.*;

// im4java-0.97.0-bin.tar.bz2を解凍してim4java-0.97.0.jarはclasspathに通す
public class Im4java16
{
public static void main(String args[])
throws Exception
{
try
{
// ConvertCmd convert = new ConvertCmd();
ImageCommand convert = new WindowsConvertCmd();

IMOperation op = new IMOperation();
op.addImage("sf.jpg");
op.wave(5.0, 50.0);
op.addImage("sample1082a.png");
convert.run(op);
}
catch(CommandException cex)
{
System.out.println(cex.getErrorText());
cex.printStackTrace();
}
}

// im4java 0.97
static class WindowsConvertCmd extends ImageCommand
{
public WindowsConvertCmd()
{
setCommand("cmd");
setCommand("/c");
setCommand("convert");
/* another way
setCommand("C:\\Program Files\\ImageMagick-6.4.9-Q16\\convert");
*/
}
}

}


元画像(sf.jpg)


出力画像(sample1082a.png)
im4javaで波型に揺らした画像

関連情報
im4javaのまとめ

Sunday, May 10, 2009

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>sample1104(ImageMagick6.5.2)</title>
</head>
<body>
<?php
$im = new Imagick("sf.jpg");
$im->setImageVirtualPixelMethod(Imagick::VIRTUALPIXELMETHOD_TRANSPARENT);
$im->setImageMatte(true);
$points = array(100,0, 110,20,
200,100, 190,110,
100,200, 90,190,
0,100, 10,90,
0,200, 0,180);
// ShepardsDistortion=14 in distort.h
$im->distortImage(14, $points, false);

$im->writeImage('sample1104a.png');

$im->destroy();
?>
<img src="sample1104a.png" /><br />

</body>
</html>


元画像(sf.jpg)


出力画像(sample1104a.png)
Imagickで変形させた画像

関連項目
ImageMagickで画像を変形させる (convertコマンドによる同様の処理)
ImageMagickとPHPで画像を扇形に変形させる
WindowsでImageMagickをPHPから使用するための設定

Monday, May 04, 2009

ImageMagickとPHPで画像を扇形に変形させる

ImageMagickとPHPで画像を扇形に変形させるには、以下のコードを実行します。

<!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>sample1093(ImageMagick6.5.2)</title>
</head>
<body>
<?php
$im = new Imagick('sf2.jpg');
$im->setImageVirtualPixelMethod(
Imagick::VIRTUALPIXELMETHOD_TRANSPARENT);
$im->setImageMatte(true);
$points = array(100,0,200,50);
//$im->distortImage(Imagick::DISTORTION_ARC,
//$points, false);
// ArcDistortion in distort.h
$im->distortImage(9, $points, true);
$im->writeImage('sample1093a.png');
$im->destroy();
?>
<img src="sample1093a.png" />
</body>
</html>

元画像(sf2.jpg)


出力画像(sample1093a.png)
ImageMagickとPHPで扇形に変形させた画像

関連項目
ImageMagickで画像を扇形に変形させる (convertコマンドでの同様の処理)
ImageMagickとPHPで画像を変形させる

Sunday, May 03, 2009

ImageMagickで画像を変形させる

ImageMagickで画像を変形させるには、以下のバッチファイルを実行します。制御点は変形前x,yと変形後x,yで制御します。

rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.4.8-Q16

%im%\convert.exe sf.jpg -alpha activate -virtual-pixel transparent -distort shepards "100,0 110,20 200,100 190,110 100,200 90,190 0,100 10,90 0,200 0,180" sample940a.png

元画像(sf.jpg)


出力画像(sample940a.png)
ImageMagickで変形させた画像

関連項目
ImageMagickで画像を扇形に変形させる
ImageMagickで台形変形を行う
ImageMagickとPHPで画像を変形させる (Imagickでの同様の処理)

Friday, April 24, 2009

ImageMagickで画像を扇形に変形させる

ImageMagickで画像を扇形に変形させるには、以下のバッチファイルを実行します。

rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.4.8-Q16

%im%\convert.exe sf2.jpg -alpha activate -virtual-pixel transparent -distort arc "120 0 200 0" sample934a.png

%im%\convert.exe sf2.jpg -alpha activate -virtual-pixel transparent -distort arc "100 0 200 50" sample934b.png

元画像(sf2.jpg)


出力画像1(sample934a.png)


出力画像2(sample934b.png)
ImageMagickで扇形に変形させた画像

関連項目
ImageMagickとPHPで画像を扇形に変形させる (Imagickによる同様の処理)
ImageMagickで画像を変形させる

Monday, March 23, 2009

groovyで画像を水面下のようにゆらす

groovyで画像を水面下のようにゆらすには、以下のコードを実行します。


import groovy.swing.j2d.*

def gr = new GraphicsRenderer()
gr.renderToFile("sample839a.png", 300, 225){
antialias("on")
rect( x: 0, y: 0, width: 300, height: 225,
borderColor: no){
texturePaint(x: 0, y: 0, file: 'sf2.jpg' )
filters {
swim(amount: 10, scale:32, stretch:10,
angle:10, turbulence:1.0, time: 0.1)
}
}
}


元画像(sf2.jpg)


出力画像(sample839a.png)
groovyで水面下のようにゆらした画像

動作環境
Groovy1.6.0 Beta2, JDK1.6 Update11

関連項目
Java2DとJava Image Filters(pixels)を使用して画像を水面下のように揺らす

Saturday, March 21, 2009

groovyで画像を球面処理する

groovyで画像を球面処理するには、以下のコードを実行します。


import groovy.swing.j2d.*

def gr = new GraphicsRenderer()
gr.renderToFile("sample840a.png", 300, 225){
antialias("on")
rect( x: 0, y: 0, width: 300, height: 225,
borderColor: no){
texturePaint(x: 0, y: 0, file: 'sf2.jpg' )
filters {
sphereDistort(refractionIndex: 1.9,
radius:80, centreX:0.6, centreY:0.6)
}
}
}


元画像(sf2.jpg)


出力画像(sample840a.png)
groovyで球面処理した画像

動作環境
Groovy1.6.0 Beta2, JDK1.6 Update11

関連項目
Java2DとJava Image Filters(pixels)を使用して球面処理をおこなう

Tuesday, March 10, 2009

groovyで画像をひねる

groovyで画像をひねったように変形させるには、以下のコードを実行します。


import groovy.swing.j2d.*

def gr = new GraphicsRenderer()
gr.renderToFile("sample824a.png", 300, 225){
antialias("on")
rect( x: 0, y: 0, width: 300, height: 225,
borderColor: no){
texturePaint(x: 0, y: 0, file: 'sf2.jpg' )
filters {
twirl(centreX:0.4, centreY:0.6, angle:90, radius:150)
}
}
}


元画像(sf2.jpg)


出力画像(sample824a.png)
groovyでひねりをいれた画像

動作環境
Groovy1.6.0 Beta2, JDK1.6 Update11

関連項目
groovyで画像を台形変形させる

Friday, February 13, 2009

im4javaで画像を台形変形する

im4javaで画像を台形変形するには、以下のコードを実行します(windows)。


import org.im4java.core.*;

// im4java-0.96.0-bin.tar.bz2を解凍してim4java-0.96.0.jarはclasspathに通す
public class Im4java1
{
public static void main(String args[])
throws Exception
{
try
{
IMOperation op = new IMOperation();
op.addImage("sf.jpg");
op.alpha("activate");
op.virtualPixel("transparent");
op.distort("perspective",
"0,0, 50,50, 200,0, 150,50, 0,200, 0,200, 200,200, 200,200");
op.addImage("sample919a.png");

// ConvertCmd convert = new ConvertCmd();
ImageCommand convert = new WindowsConvertCmd();
convert.run(op);
}
catch(CommandException cex)
{
System.out.println(cex.getErrorText());
cex.printStackTrace();
}
}

static class WindowsConvertCmd extends ImageCommand
{
public WindowsConvertCmd()
{
setCommand("cmd");
setCommand("/c");
setCommand("convert");
/* another way
setCommand("C:\\Program Files\\ImageMagick-6.4.9-Q16\\convert");
*/
}
}

}


元画像(sf.jpg)


出力画像(sample919a.png)
im4javaで台形変形した画像

関連情報
im4javaのまとめ

ImageMagickで台形変形を行う

im4javaのホームページ

Tuesday, January 27, 2009

groovyで画像を台形変形させる

groovyで画像を台形変形させるには、以下のコードを実行します。


import groovy.swing.j2d.*

def gr = new GraphicsRenderer()
gr.renderToFile("sample866a.png", 200, 200){
antialias("on")
rect( x: 0, y: 0, width: 200, height: 200,
borderColor: no){
texturePaint(x: 0, y: 0, file: 'sf.jpg' )
filters {
perspective(x0:25, y0:30, x1:175, y1:30,
x2:200, y2:200, x3:0, y3:200)
}
}
}


元画像(sf.jpg)


出力画像(sample866a.png)
groovyで台形変形させた画像

動作環境
Groovy1.6.0 Beta2, JDK1.6 Update11

関連項目
groovyで画像を指定された点に引き寄せる

Sunday, January 25, 2009

groovyで画像を指定された点に引き寄せる

groovyで画像を指定された点に引き寄せるには、以下のコードを実行します。


import groovy.swing.j2d.*

def gr = new GraphicsRenderer()
gr.renderToFile("sample866a.png", 300, 225){
antialias("on")
rect( x: 0, y: 0, width: 300, height: 225,
borderColor: no){
texturePaint(x: 0, y: 0, file: 'sf2.jpg' )
filters {
pinch(centreX:0.4, centreY:0.5, angle:30, amount:0.5, radius:150)
}
}
}


元画像(sf2.jpg)


出力画像(sample866a.png)


動作環境
Groovy1.6.0 Beta2, JDK1.6 Update11

関連項目
groovyで画像をさまざまなパターンで塗りつぶす
groovyで画像の彩度を上げる

Wednesday, October 22, 2008

RMagickで画像を台形変形させる

RMagickで画像を台形変形させるには、以下のコードを実行します。

require 'RMagick'
include Magick

# 画像台形変形
images = ImageList.new("sf.jpg")
points = [0,0, 50,50, 200,0, 150,50, 0,200, 0,200, 200,200, 200,200]
images[0].virtual_pixel_method = Magick::TransparentVirtualPixelMethod
img1 = images[0].distort(Magick::PerspectiveDistortion, points)
img1.write("sample656a.png")
exit

元画像(sf.jpg)


出力画像(sample656a.png)


動作環境
ruby1.8.6-26/RMagick-2.3.0-ImageMagick-6.4.0-2-Q8

関連項目
ImageMagickで台形変形を行う (Convertコマンドによる同様の処理)

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/

Friday, September 19, 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 Java2DTest34
{
public static void main(String args[])
throws Exception
{
/* 水面下のようなeffectをかける */
BufferedImage img = ImageIO.read(new File("sf2.jpg"));

SwimFilter sf = new SwimFilter();
/* swimの量 */
sf.setAmount(10f);
/* スケール */
sf.setScale(32f);
/* 引き伸ばし */
sf.setStretch(10f);
/* アングル */
sf.setAngle(10f/180f*ImageMath.PI);
/* 乱れ */
sf.setTurbulence(1f);
/* 時間 */
sf.setTime(0.1f);
BufferedImage img2 = sf.filter(img, null);
ImageIO.write(img2, "jpg", new File("sample565a.jpg"));
}
}

元画像(sf2.jpg)


出力画像(sample565a.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 08, 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 Java2DTest26
{
public static void main(String args[])
throws Exception
{
/* 画像を台形変形させる */
BufferedImage img = ImageIO.read(new File("sf.jpg"));

PerspectiveFilter pf = new PerspectiveFilter(
25, 30, /* 左上の座標 */
175, 30, /* 右上の座標 */
200, 200, /* 右下の座標 */
0, 200 /* 左下の座標 */
);

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

元画像(sf.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, June 05, 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>sample409</title>
</head>
<body>
<?php
/* shearImageメソッドを使用して画像を傾ける */
$im = new Imagick('sample3b.jpg');
$im->shearImage('#bbddff', 10, 0);
$im->writeImage('sample409a.jpg');
/* $im->clear(); 2008/09/30追記:destroyと同様にClearMagicWandを呼ぶので必要なし */
$im->destroy();

/* 傾けて生じた空間を透明にする */
$im = new Imagick('sample3b.jpg');
$im->shearImage('none', 0, 20);
/* 背景用画像を読み込み */
$im2 = new Imagick('sf.jpg');
/* 背景用画像と重ね合わせ */
$im2->compositeImage($im, Imagick::COMPOSITE_DEFAULT, 50, 50);
/* $im->clear(); 2008/09/30追記:destroyと同様にClearMagicWandを呼ぶので必要なし */
$im->destroy();
$im2->writeImage('sample409b.jpg');
/* $im2->clear(); 2008/09/30追記:destroyと同様にClearMagicWandを呼ぶので必要なし */
$im2->destroy();
?>

<img src="sample409a.jpg" />
<img src="sample409b.jpg" />

</body>
</html>

元画像(sample3b.jpg)


出力画像1(sample409a.jpg)


出力画像2(sample409b.jpg)


環境
Apache 2.2.8/PHP5.2.5/ImageMagick6.4.0

関連項目
WindowsでImageMagickをPHPから使用するための設定 (Imagickの設定)
ImageMagickとPHPで画像を回転させる

Sunday, May 18, 2008

JMagickで画像をかたむける

JMagickで画像を傾けるには、以下のコードを実行します。

import magick.*;

public class JMagickTest22
{
public static void main(String args[])
throws MagickException
{
/* 画像をshearImageを使用して傾ける */
MagickImage mi = new MagickImage(new ImageInfo("sf.jpg"));
MagickImage mo1 = mi.shearImage(10, 0);
mo1.setFileName("sample442a.jpg");
mo1.writeImage(new ImageInfo());
/* 余白の色 */
mi.setBackgroundColor(new PixelPacket(0xbb*256, 0xdd*256, 0xff*256, 0));
MagickImage mo2 = mi.shearImage(0, 20);
mo2.setFileName("sample442b.jpg");
mo2.writeImage(new ImageInfo());
}
}

元画像(sf.jpg)


出力画像(sample442a.jpg)


出力画像(sample442b.jpg)


環境
JDK6 Upadate6(JDK1.6.0_06)/jmagick-win-6.3.9-Q16


関連情報
JMagickまとめ
ImageMagickをJavaから使用するための設定(JMagickインストール)

Saturday, May 10, 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>sample383</title>
</head>
<body>
<?php
/* リサイズ */
$im = new Imagick('sf.jpg');
/* 2008/11/25追記 比率を保ってリサイズするには、基準となる軸以外に0を指定する
(誤)$im->resizeImage(100, 100, imagick::FILTER_MITCHELL, 1);
*/
$im->resizeImage(100, 0, imagick::FILTER_MITCHELL, 1);
$im->writeImage('sample383a.png');
/* $im->clear(); 2008/09/30追記:destroyと同様にClearMagicWandを呼ぶので必要なし */
$im->destroy();
/* アスペクト比を無視してリサイズ */
$im = new Imagick('sf.jpg');
$im->resizeImage(200, 100, imagick::FILTER_MITCHELL, 1, false);
$im->writeImage('sample383b.png');
/* $im->clear(); 2008/09/30追記:destroyと同様にClearMagicWandを呼ぶので必要なし */
$im->destroy();
?>
<img src="sample383a.png" />
<img src="sample383b.png" />
</body>
</html>

元画像(sf.jpg)


出力画像1(sample383a.png)


出力画像2(sample383b.png)


関連項目
ImageMagickでアスペクト比を無視して大きさを変更する (Convertコマンド)
ImageMagickとPHPで、バンド状グラデーションを描画する (FILTER_POINTを使用してのリサイズ)
ImageMagickとPHPで、画像を荒いドット画像に変換する (FILTER_POINTを使用してのリサイズ)