Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java:寻找更好的调整大小方法_Java - Fatal编程技术网

Java:寻找更好的调整大小方法

Java:寻找更好的调整大小方法,java,Java,我编写了这个调整大小的小方法来缩放.png图片: public BufferedImage resize(BufferedImage img, int newW, int newH) { int w = img.getWidth(); int h = img.getHeight(); BufferedImage dimg = new BufferedImage(newW, newH, img.getType()); Graphics2D g = dimg.

我编写了这个调整大小的小方法来缩放.png图片:

    public BufferedImage resize(BufferedImage img, int newW, int newH) {
    int w = img.getWidth();
    int h = img.getHeight();
    BufferedImage dimg = new BufferedImage(newW, newH, img.getType());
    Graphics2D g = dimg.createGraphics();
    g.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR);
    g.drawImage(img, 0, 0, newH, newW, 0, 0, w, h, null);
    g.dispose();
    return dimg;
}
我想把我的.png图片放大至少8倍,但这会提高图像的分辨率。有人知道如何解决这个问题吗

谢谢。

你可以试试这个:

BufferedImage createResizedCopy(BufferedImage img, int newW, int newH)
{
    BufferedImage scaledBI = new BufferedImage(newW, newH, BufferedImage.TYPE_INT_ARGB);
    Graphics2D g = scaledBI.createGraphics();
    g.setComposite(AlphaComposite.Src);
    g.drawImage(img, 0, 0, newW, newH, null); 
    g.dispose();
    return scaledBI;
}

或者去看看,其他人也有同样的问题。

如果你想使用图像,你可以做什么。GetScaleInstance然后渲染它。比如说

resizedimage = image.getScaledInstance(newW, newH, Image.SCALE_SMOOTH));
唯一的问题是您必须更改您的方法来处理图像而不是BuffereImage,但这很容易做到