java - 调整图像大小 java getScaledInstance

标签 java image

这是我的代码"

ImageIcon ii=new ImageIcon("/Users/tushar_chutani/Desktop/apple.jpg");  

Image image= ii.getImage().getScaledInstance(50, 50, Image.SCALE_SMOOTH);

图像没有被缩放代码有什么问题?

最佳答案

问题是 Image.getScaledInstance() 没有返回一个 完成的缩放图像。它将大部分缩放工作留给以后 使用图像像素的时间。

例如,如果您在 Graphics2D.drawImage() 中使用缩放图像 调用则该方法将返回 false 并继续异步绘制。然后你必须使用 ImageObserver Graphics2D.drawImage()调用中的参数等待缩放和绘制完成。

下面的例子展示了如何更简单地缩放图像 没有 ImageObserver。缩放是通过绘制图标完成的 改为 BufferedImage

import javax.swing.ImageIcon;
import java.awt.image.BufferedImage;
import java.awt.Image;
import java.awt.Color;
import java.awt.Graphics2D;
import java.io.File;
import javax.imageio.ImageIO;
import java.awt.RenderingHints;

public class Tushar2
{
        public void scaleImage()
        {
                try
                {
                        ImageIcon ii = new ImageIcon("/tmp/apple.jpg");
                        BufferedImage bi = new BufferedImage(50, 50, BufferedImage.TYPE_INT_RGB);
                        Graphics2D g2d = (Graphics2D)bi.createGraphics();
                        g2d.addRenderingHints(new RenderingHints(RenderingHints.KEY_RENDERING,
                                RenderingHints.VALUE_RENDER_QUALITY));
                        boolean b = g2d.drawImage(ii.getImage(), 0, 0, 50, 50, null);
                        System.out.println(b);
                        ImageIO.write(bi, "jpg", new File("/tmp/apple50.jpg"));
                }
                catch (Exception e)
                {
                        e.printStackTrace();
                }
        }

        public static void main(String []args)
        {
                new Tushar2().scaleImage();
        }
}

关于java - 调整图像大小 java getScaledInstance,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7252983/

相关文章:

image - 扑克牌翻转动画

Java 8 是否有可能使用反射或其他方法在方法中插入代码?

java - 从 ServletContext 资源解析 XML 文档时出现 IOException [/WEB-INF/spring-dispatcher-servlet.xml]

java - 如何在 Spring Boot 中从原始查询中获取数据?

iphone - 如何在 iPhone 上验证从 Web 下载的图像文件?

java - 我如何在java gui中使用图像

c# - 如何将二进制图像传递给图像处理程序以将其显示在 DataList 中?

javascript - 如何在网站上获取 Instagram feed

java - 将对象的防御性副本添加到哈希集中

java.lang.Exception : No runnable methods exception in running JUnits