java - 切片一个非常大的 jpg map 图像,49000* 34300 像素

标签 java jai tiling

我想写一个 map 查看器,我必须处理大 map 图像文件的小图 block 并且需要平铺大图像,现在的问题是将大图像平铺成小图 block (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 - 切片一个非常大的 jpg map 图像,49000* 34300 像素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2649048/

相关文章:

java - 一个 Controller 方法中的 Bean

Java插件(JAI)自动安装

java - RenderedImage 到 BufferedImage 用于多页 tiff 读取

java - 使用 BufferedImage 和 JAI 从文件读取 TIFF 图像

java - 检查 Selenium WebDriver 是否指向窗口

java - (高中Java作业帮助)英文字母转摩尔斯电码的困惑

java - 字符串中 'x' 个字符的数量 - 递归

java - 如何使用 IText 在 PDF 页面中间插入内容

html - 如何沿屏幕制作 150x150 正方形的 div

algorithm - 泛化多米诺拼贴的算法?