编程语言
首页 > 编程语言> > java – 切割一个非常大的jpg地图图像,49000 * 34300像素

java – 切割一个非常大的jpg地图图像,49000 * 34300像素

作者:互联网

我想写一个mapviewer,我必须工作大地图图像文件的小瓷砖,需要平铺大图像,现在的问题是平铺大图像到小瓷砖(250 * 250像素或像这样大小)
所以,我使用ImageMagic程序来做,但有问题
现在是进行平铺的任何其他编程方法或应用程序?
我可以用java中的JAI吗?怎么样?

解决方法:

你有没有尝试过在java中做这件事?我试过这个(警告,大图像,可能会崩溃你的浏览器,使用“另存为…”)this image.需要运行额外的内存(-Xmx400M).

public class ImageTile {
    public static void main(String[] args) throws IOException {
        Dimension tileDim = new Dimension(250, 250);
        BufferedImage image = ImageIO.read(new File(args[0]));

        Dimension imageDim = new Dimension(image.getWidth(), image.getHeight());

        for(int y = 0; y < imageDim.height; y += tileDim.height) {
            for(int x = 0; x < imageDim.width; x += tileDim.width) {

                int w = Math.min(x + tileDim.width,  imageDim.width)  - x;
                int h = Math.min(y + tileDim.height, imageDim.height) - y;

                BufferedImage tile = image.getSubimage(x, y, w, h);
                ImageIO.write(tile, "JPG", new File("tile-"+x+"-"+y+".jpg")); 
            }
        }
    }
}

标签:java,jai,tiling
来源: https://codeday.me/bug/20190610/1213504.html