当前位置: 首页 > 知识库问答 >
问题:

Java swing图形图像相关问题

丁灿
2023-03-14

我正在尝试写一些程序,在那里我加载图像到一个面板。以下是我的5个问题:

1>可以加载什么样的(扩展)图像有限制吗?我试着加载一个.bmp文件,即使我用.jpg重命名了它,它也没有加载。但是,加载了一些扩展名为.png或.jpg的其他文件。

就是这样。用一些例子来详细说明会很好。提前道谢。

共有1个答案

周奇
2023-03-14

1>可以加载什么样的(扩展)图像有限制吗?我试着加载一个.bmp文件,即使我用.jpg重命名了它,它也没有加载。但是,加载了一些扩展名为.png或.jpg的其他文件。

图像I/O内置支持GIF、PNG、JPEG、BMP和WBMP。映像I/O也是可扩展的,因此开发人员或管理员可以“插件”支持附加格式。例如,TIFF和JPEG 2000的插件是单独可用的。

检查阅读/加载图像教程页面

  BufferedImage image = ImageIO.read("image file");
  image = image.getSubimage(50, 50, 200, 200);

这将裁剪位置(x,y)==(50,50)和大小200x200处的图像。

3>有什么方法可以调整图像大小吗?

关于各种方法的讨论将占用一个博客的大小。通读Image.GetScaledInstance()文章以获得更好的洞察力。

BufferedImage tmpImage = new BufferedImage(cWidth, cHeight, BufferedImage.TYPE_INT_ARGB);
Graphics2D g2d = (Graphics2D)tmpImage.getGraphics();
g2d.setRenderingHint(RenderingHints.KEY_INTERPOLATION,
                            RenderingHints.VALUE_INTERPOLATION_BILINEAR);
g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
g2d.drawImage(image, 0, 0, cWidth, cHeight, null);

有一个由MadProgrammer完成的工作示例。它也是更好的使用外部库,这样做的工作很好。

4>我可以向滚动窗格添加图像吗?

不建议直接添加。改用jlabel。或者使用自定义组件并重写PaintComponent(GraphicsG)函数并在其中绘制。有一些使用这两种方法的工作示例。通常,使用jlabel更容易。

是的,使用Graphics2d.Rotate(双theta)函数;实际上,您可以使用Graphics2D API做更多的事情。MadProgrammer在这里和这里展示了工作示例。

 类似资料:
  • 我需要使用javaFX2执行以下操作: 1-)加载图像并使用imageView显示。[好的] 2-)右键单击并选择“添加节点”选项,屏幕上将出现一个黑色圆圈,您可以将圆圈拖动到图像的任何位置。[好的] 3-)使用鼠标的滚轮放大或缩小图像视图,在图像上提供“缩放感觉”。[确定] 3.1-)但是,每次缩放图像时,我都希望我的圆圈遵循缩放比例,这意味着它们不能保持在屏幕的相同位置。[不知道] 我的问题是

  • 我在超文本标记语言页面中包含了一个堆叠条形图(带有Chart.js库),可以让用户可视化一些数据。这些数据会随着用户的选择而改变,启用此onClick功能的Javascript函数是: 其中函数createData创建JSON对象(带有标签和数据集)以传递给图形(工作正常),函数makeGrafico(): 获取用于显示的参数的名称,以及上一个函数的JSON对象。 当我第一次单击一个程序时(具有o

  • 我的目标是使图像圆形并显示它。如果图像是方形的,那么我可以通过简单地使用CSS的属性将其转换为圆形。但是当图像是矩形时,使用这个CSS属性会给我椭圆形的图像。 剪辑的部分是不可见的,但仍然存在。所以即使现在我也在尝试使用属性,它给我椭圆形图像,右侧和左侧被剪辑。 我有什么办法可以解决这个问题吗?

  • 主要内容:圆角图片,实例,椭圆图片,实例,缩略图,实例,图片对齐方式,实例,图片居中,实例,响应式图片,实例圆角图片 .rounded 类可以让图片显示圆角效果: 实例 <img decoding="async" src="cinqueterre.jpg" class="rounded" alt="Cinque Terre"> 椭圆图片 .rounded-circle 类可以设置椭圆形图片: 实例 <img decoding="async" src="cinqueterre.jpg" class

  • 主要内容:圆角图片,实例,椭圆图片,实例,缩略图,实例,图片对齐方式,实例,图片居中,实例,响应式图片,实例圆角图片 .rounded 类可以让图片显示圆角效果: 实例 <img decoding="async" src="cinqueterre.jpg" class="rounded" alt="Cinque Terre"> 椭圆图片 .rounded-circle 类可以设置椭圆形图片: 实例 <img decoding="async" src="cinqueterre.jpg" class

  • 如何清除过期索引 监控数据停止上报后,该数据对应的索引也会停止更新、变为过期索引。过期索引,影响视听,部分用户希望删除之。 我们原来的方案,是: 通过task模块,有数据上报的索引、每天被更新一次,7天未被更新的索引、清除之。但是,很多用户不能正确配置graph实例的http接口,导致正常上报的监控数据的索引 无法被更新;7天后,合法索引被task模块误删除。 为了解决上述问题,我们停掉了task