高山流水
msgbartop
动之则分,静之则合,无过不及,随曲就伸。
msgbarbottom

11 十 06 一个切割大图的java程序

将一张大图片切割成100*100的图片.

用了batik包,可以从这里下载:http://apache.justdn.org/xml/batik/

import org.apache.batik.apps.rasterizer.DestinationType;

import org.apache.batik.apps.rasterizer.SVGConverter;

import javax.imageio.ImageIO;

import java.io.File;

import java.awt.*;

import java.awt.image.BufferedImage;

public class ImageTiler {

private
static final String BASE_DIR = “jpg/”;

private
static final int TILE_WIDTH = 100;

private
static final int TILE_HEIGHT = 100;

public
static void main(String[] args) throws Exception {

// create the tiles

String[][] sources = { { “0/0.jpg”, “0″ },{”0/1.jpg”, “1″} };

for (int i = 0; i < sources.length; i++) {

String[] source = sources[i];

BufferedImage bi = ImageIO.read(new File(BASE_DIR +
source[0]));

int columns = bi.getWidth() / TILE_WIDTH;

int rows = bi.getHeight() / TILE_HEIGHT;

for (int x = 0; x < columns; x++) {

for (int y = 0; y < rows; y++) {

BufferedImage img = new BufferedImage(TILE_WIDTH,
TILE_HEIGHT,

bi.getType());

Graphics2D newGraphics = (Graphics2D) img.getGraphics();

newGraphics.drawImage(bi, 0, 0, TILE_WIDTH, TILE_HEIGHT,

TILE_WIDTH * x, TILE_HEIGHT * y,

TILE_WIDTH * x + TILE_WIDTH,

TILE_HEIGHT * y + TILE_HEIGHT,

null);

ImageIO.write(img, “jpg”, new File(BASE_DIR + “0/” +

“x” + x + “y” + y + “z” + source[1] + “.jpg”));

}

}

}

}

}

Tags: , ,



Reader's Comments

  1. |

    不错。

  2. |

    batik下不了啊!能介绍下batik是怎么配置的吗?你用的是哪个版本?

  3. |

    您可以给我留个email,我这应该还有备份,可以发给你。应该不需要进行什么特别的配置吧,呵呵~

  4. |

    您可以给我留个email,我这应该还有备份,可以发给你。应该不需要进行什么特别的配置吧,呵呵~



Leave a Comment