- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
这是我的代码"
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/
我正在制作一个图书馆系统,用户可以在其中输入图像。但是,图像不会根据jlabel调整大小。我不知道如何将 .getScaledInstance 放在我的图像图标上。你能告诉我怎么做吗? format=
在导入图像时,我可以使用 .getScaledInstance 轻松缩放图像,如下所示: player_sprite = a_1.getImage().getScaledInstance(150, 1
所以,我正在尝试创建一个垄断游戏。我正在尝试将(板的)图像加载到 JPanel 上。 我首先要将图像缩放为 1024*1024 图像。 我已经让图像出现在 JPanel 上(因此文件地址有效)。 但是
我正在尝试使用鼠标运动监听器缩放图像,但它不起作用。所以现在我正在使用 2 个 JTextfields 手动执行此操作。我从 Jtextfields 获取值,然后将该值传递给 getScaledIns
我在理解这行代码时遇到一些问题: bufferedImage.getScaledInstance(100, -1, Image.SCALE_SMOOTH); 我用它来调整具有以下数字的图像大小。宽度:
我想要比例图像。我正在尝试使用 getScaledInstance() 方法,但这对我不起作用。我写的图像与最有趣的图像大小相同...... 这是我的代码: Image image = ImageIO
这是我的代码" ImageIcon ii=new ImageIcon("/Users/tushar_chutani/Desktop/apple.jpg"); Image image= ii.getI
我使用这段代码将图像绘制到图形组件中。如果图像足够大,它应该将图像调整到最大可用空间: // getWidth() = component width, image.getWidth() =
如果图像太大,我想调整图像的大小,但我希望它保持其纵横比,我怎样才能定义它的高度并让它自动获取它的宽度? ImageIcon image2 = new ImageIcon(image); //Chec
我运行下面的代码,它从中获取scaledInstance的图像已经出现,但我正在尝试创建它的较小版本。 Image tPoke = poke.getScaledInstance(poke.getWid
这就是这个古怪的标题。没有想出一个简短的怀孕描述。 我的问题是这些代码行: ii = new ImageIcon("images/player.png"); image = ii.getImage()
我正在制作一个基于 java rmi 的应用程序,我在其中传递和接收来自服务器的 ImageIcon 对象...(图像存储在服务器中的单独 URL 中) 函数涉及以下.... 1.
我是一名优秀的程序员,十分优秀!