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

Java如何缩放BufferedImage

林华皓
2023-03-14
问题内容

跟随javadocs,我尝试扩展a BufferedImage而不成功,这是我的代码

BufferedImage image = MatrixToImageWriter.getBufferedImage(encoded);
Graphics2D grph = image.createGraphics();
grph.scale(2.0, 2.0);
grph.dispose();

我不明白为什么它不起作用,有帮助吗?


问题答案:

AffineTransformOp 提供了选择插值类型的额外灵活性。

BufferedImage before = getBufferedImage(encoded);
int w = before.getWidth();
int h = before.getHeight();
BufferedImage after = new BufferedImage(w, h, BufferedImage.TYPE_INT_ARGB);
AffineTransform at = new AffineTransform();
at.scale(2.0, 2.0);
AffineTransformOp scaleOp = 
   new AffineTransformOp(at, AffineTransformOp.TYPE_BILINEAR);
after = scaleOp.filter(before, after);

显示的片段说明了重采样,而不是裁剪 ; 这个相关的答案解决了这个问题 ; 这里考察一些相关的例子。



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

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

  • 当我尝试这样做时,我得到如下输出: 我只想把我的out放入。我怎么才能做到这一点?

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

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

  • 我基本上操作了这段代码http://svn.openstreetmap.org/applications/viewer/jmapviewer/src/org/openstreetmap/gui/jmapviewer/demo.java,以使用java Swing查看openstreetmap。