当前位置: 首页 > 面试题库 >

如何缩放BufferedImage

贺乐意
2023-03-14
问题内容

我已经看过这个问题,但是它似乎并没有真正回答我的问题。我有一个图像文件,它可以是任何分辨率。我需要以BufferedImage特定分辨率将该图像加载到对象中(例如,对于本示例来说为800x800)。我知道Image类可以getScaledInstance()用来将图像缩放到新的大小,但是后来我不知道如何将其恢复为BufferedImage。是否有一种简单的方法可以将缓冲图像缩放到特定大小?

NOTE II不想按特定的比例缩放图像,我想拍摄一张图像并制成特定的尺寸。


问题答案:

像这样吗 :

 /**
 * Resizes an image using a Graphics2D object backed by a BufferedImage.
 * @param srcImg - source image to scale
 * @param w - desired width
 * @param h - desired height
 * @return - the new resized image
 */
private BufferedImage getScaledImage(Image srcImg, int w, int h){
    BufferedImage resizedImg = new BufferedImage(w, h, BufferedImage.TRANSLUCENT);
    Graphics2D g2 = resizedImg.createGraphics();
    g2.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR);
    g2.drawImage(srcImg, 0, 0, w, h, null);
    g2.dispose();
    return resizedImg;
}


 类似资料:
  • 问题内容: 跟随,我尝试扩展而不成功,这是我的代码: 我不明白为什么它不起作用,有帮助吗? 问题答案: 提供了选择插值类型的额外灵活性。 显示的片段说明了重采样,而不是裁剪 ; 这个相关的答案解决了这个问题 ; 这里考察一些相关的例子。

  • 问题内容: 假设服务器获得了10,000个并发连接(通过socket.io)。太多了,如果它再也处理不了,我需要启动另一台服务器。 如何将两个服务器及其socket.io同步? 问题答案: 您可以尝试使用例如群集模块并将负载分配到多个内核(如果您有多核CPU)。如果这还不够,您可以尝试使用反向代理在多个服务器之间分配请求,并将Redis作为中央会话数据存储(如果您的方案可行)。

  • 我试图放大我的mandelbrot集,我读到了这个问题:如何简单地放大mandelbrot集,但我很难理解它,它不起作用。当我这样计算新的实数和复数时: 新的mandelbrot在两个轴上都有点变形?怎么了?以下是一个例子:http://www.phpdevpad.de/index.php?id=190.

  • 问题内容: 我需要实现变焦为包含在。我已经通过覆盖方法和调用来成功进行缩放。 这是不正常:对的和的规模如预期,但一定会得到的和这样的寄存器在预分频的位置。我能做什么?感谢您的阅读。 问题答案: 显示了如何使用明确的转化方法扩展鼠标坐标:,,和。)。

  • 问题内容: 如何才能平滑地为画布创建缩放动画?GWT提供了一种获取滚轮数量的方法和。 这里的问题是,每个车轮运动都会执行此方法,并且如果我在该方法本身中调用画布重绘,事情会变得很滞后。 因此,我想到了以某种方式制作缩放动画的方法。但是如何? 我考虑过创建一个,但没有真正的主意,因为只有mousewheelevent作为起点,而用户没有完成用滚轮缩放的终点… 问题答案: 这是我用来缩放图像的可伸缩图

  • 问题内容: IE浏览器忽略缩放设置不起作用,我的代码如下,为什么它不起作用?我收到了错误消息(selenium.common.exceptions.SessionNotCreatedException:消息:启动Internet Explorer时发生意外错误。浏览器缩放级别设置为125%。应将其设置为100%) 问题答案: 不 ,在使用 InternetExplorerDriver时, 您不应忽