使用 Java 缩放图像

问题描述

我创建了一个提取 PDF 的图像,并制作了一个带有 tesseract 的 OCR。一切正常,直到决定更改图像的 dpi。我希望这样做会出错,我尝试重新缩放我的图像,以使我的 OCR 再次正常工作。

我不知道如何重新缩放我的图像。我知道 BufferedImage 类有一些方法,但我找不到动态调整它的方法。

我不知道我是否清楚,但想象一下 300 dpi 的图像。如果我想将其更改为 600,我必须重新缩放我的图像以使我的 OCR 再次工作,我的问题是如何动态重新缩放它?原始 dpi 和新的 dpi 之间是否存在某种比率,我可以使用它来获得新的宽度和高度?还是别的什么?

为了帮助您理解我,这里是我的代码:

public double ratioDPI() {
    int ratio = 0;
    int minimal_dpi = 300;
    int dpi = ERXProperties.intForKey("dpi.image");
    return ratio = (dpi/minimal_dpi);
}

public BufferedImage rescale(BufferedImage img) {
    int width_img = img.getWidth();
    int height_img = img.getHeight();
    double factor_width = ERXProperties.doubleForKey("factor.size.width.image.republique.francaise");
    double factor_height = ERXProperties.doubleForKey("factor.size.height.image.republique.francaise");
    return (BufferedImage) img.getScaledInstance((int)(width_img*ratio),(int)(height_img*ratio),BufferedImage.SCALE_SMOOTH);
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)