【问题标题】:Scaling images/icons in Java在 Java 中缩放图像/图标
【发布时间】:2010-10-17 15:12:25
【问题描述】:

当显示器分辨率发生变化时,我正在处理的项目需要调整大小。由于遗留代码和其他问题,我们使用自定义库来实现,该库会在分辨率发生变化时将所有组件缩放到适当的大小。

但是,当我们缩放项目中使用的一些图像/图标时,它们会变得模糊/模糊/混叠。主要是因为它们都是光栅 gif。

我们认为可以缓解此问题的一种解决方案是使用矢量图像并将它们动态转换为光栅图像(并缓存它们以提高性能)。

大家觉得呢?这会是一个好方法吗?或者我选择的方法有更好的替代方法吗?

如果这是一种更好的方法,那么有人可以指点如何将 svg 转换为 jpg 或 png(最好)。可用的(和商业上可用的)库?

谢谢

【问题讨论】:

    标签: java png svg jpeg image-conversion


    【解决方案1】:

    java 中的算法非常好。根本问题听起来好像您的原始图像/图标已经太小了,因此按比例放大它们会给您留下人工制品。一个真正简单的方法是让与应用程序一起发送的图像尺寸更大,并且仅按比例缩小。我想说关于图像大小(像素高度和宽度)的政策是必要的,因为您似乎表明只有一些有问题。

    当然,如果您可以使用矢量图形,则可以无限缩放,这可能是更好的长期投资,具体取决于您的应用程序以及可能需要支持大型输出格式(不仅是屏幕,还包括打印)。以这种方式处理事情可能相当复杂。 (需要更多信息来帮助您进一步了解本段中的要点。)

    【讨论】:

    • 虽然切换到矢量图会是一个“更干净”的解决方案;它会更快,更容易,并且引入更少的依赖关系来创建大型光栅图像并按比例缩小。由于我怀疑您的图像模糊问题值得投入大量时间,因此我建议采用这种方法。
    【解决方案2】:

    Batik可以将svgs转换成pngs或者jpegs

    【讨论】:

      【解决方案3】:

      Metal(跨平台)PL&F 中的图标被绘制成一个缓冲图像,以便与它碰巧发现自己运行的任何机器融为一体。这是一种快速的技术,不会添加依赖项,也不需要学习任何额外的 API(或语言!)。在您的 Sun JDK 中查看 src.zip

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-07-10
        • 1970-01-01
        • 2019-02-22
        • 1970-01-01
        • 2012-03-09
        • 1970-01-01
        • 2021-07-25
        相关资源
        最近更新 更多