在Java中缩放图像/图标

在Java中缩放图像/图标,java,png,svg,jpeg,image-conversion,Java,Png,Svg,Jpeg,Image Conversion,当监视器分辨率更改时,我正在处理的项目需要调整大小。由于遗留代码和其他问题,我们通过使用一个自定义库来实现这一点,该库在分辨率更改时将所有组件缩放到适当的大小 但是,当我们缩放项目中使用的一些图像/图标时,它们会变得模糊/模糊/锯齿。主要是因为它们都是光栅GIF 我们认为可以缓解此问题的一个解决方案是使用矢量图像并动态将其转换为光栅图像(并缓存它们以提高性能) 你们都怎么想?这是个好办法吗?还是有更好的方法替代我选择的方法 如果这是一种更好的方法,那么有人能给我们一些关于如何将svg转换为jpg

当监视器分辨率更改时,我正在处理的项目需要调整大小。由于遗留代码和其他问题,我们通过使用一个自定义库来实现这一点,该库在分辨率更改时将所有组件缩放到适当的大小

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

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

你们都怎么想?这是个好办法吗?还是有更好的方法替代我选择的方法

如果这是一种更好的方法,那么有人能给我们一些关于如何将svg转换为jpg或png(更好)的建议吗。可用(和商用)库


感谢您能将SVG转换为PNG或JPEG

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

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

金属(跨平台)PL&F中的图标被绘制到缓冲图像中,以便与机器上运行的任何机器融为一体。这是一种快速的技术,不添加依赖项,也不需要学习任何额外的API(或语言!)。请参阅Sun JDK中的
src.zip

尽管切换到矢量图像将是一个“更干净”的解决方案;它将更快、更容易,并且只需创建大型光栅图像和缩小比例,就可以引入更少的依赖项。由于我怀疑你的模糊图像问题是否值得投入大量时间,我建议采用这种方法。