java - 如何在 Vaadin 中设置图像组件的大小并保持纵横比

标签 java vaadin vaadin8

我有一个图像组件,我想将其大小定义为 500 像素 x 500 像素。我遇到的问题是我的图像不是正方形,但我想在将 StreamResource 插入我的图像组件时保持纵横比。除了手动调整图像大小外,我该怎么做?换句话说,Image 组件中是否有一些东西可以让我自动调整图像大小而不强制它变成正方形?

最佳答案

我最终得到的解决方案是在将图像发送到 UI 之前调整图像的大小。换句话说,我做了一些计算,如果图像大于 500,我会查看它是高度还是宽度,然后使用最大的作为基线。然后我将纵横比乘以另一个维度并相应地转换图像。

例如,如果我有一张 800x600 的图像,我会假设使用 800 作为基线,这意味着 500/800 意味着图像必须缩小到其大小的 62.5%。然后我将 600 减少 62.5%,如 600 * 0.625 = 375。因此我使用我的图像库将图像调整为 500x375。如果图像是 600x800,我会将其调整为 375x500。换句话说,我预处理图像并依赖 GUI 中的任何东西来为我管理它。

关于java - 如何在 Vaadin 中设置图像组件的大小并保持纵横比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46292455/

相关文章:

Spring 规范 'and' 不起作用

java - 如何找到幻灯片结尾的高度和最后添加的元素位置

Vaadin 警告 : widgetset version 6. 7.2 似乎与主题版本不匹配

java - 我如何访问 vaadin 树中的对象?

java - 带有 Activity 编辑器的 Vaadin 双击网格上的按钮会引发异常 ("java.lang.NullPointerException: Editor can' t edit null")

java - Vaadin Leaflet map 图层图标删除

java - 如何在java中对另一个 map 内的 map 的值求和?

java - 停止所有 Awt/Swing 线程和监视器以及其他东西,以便只剩下主线程

java - 如何添加 fragment 以使我的应用程序不会在屏幕上显示为空白

java - 使用 SelectionMode.MULTI 将行添加/创建点击事件到 Vaadin 网格?