首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将EMF转换为PNG,结果不完美

将EMF转换为PNG,结果不完美
EN

Stack Overflow用户
提问于 2021-01-20 17:53:50
回答 1查看 115关注 1票数 0

我正在尝试将EMF文件转换为PNG,成功了一半。使用代码我可以从EMF创建一张PNG图片,但结果并不完美:与原始图片相比,图片右侧的水平方向+缺少一些像素列。(似乎它以某种方式切断了,不知道为什么)

有什么想法吗?

我的代码:

代码语言:javascript
运行
复制
        File f = new File(PathToImage);
        try (FileInputStream fis = new FileInputStream(f)) {
            HemfPicture emf = new HemfPicture(fis);
            Dimension2D dim = emf.getSize();
            int width = Units.pointsToPixel(dim.getWidth());
            int height = Units.pointsToPixel(dim.getHeight());

            BufferedImage bufImg = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB);
            Graphics2D g = bufImg.createGraphics();
            g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
            g.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY);
            g.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BICUBIC);
            g.setRenderingHint(RenderingHints.KEY_FRACTIONALMETRICS, RenderingHints.VALUE_FRACTIONALMETRICS_ON);
            emf.draw(g, new Rectangle2D.Double(0, 0, width, height));
            g.dispose();

            ImageIO.write(bufImg, "PNG", new File(
                    path + imageName + ".png"));
        }
EN

Stack Overflow用户

回答已采纳

发布于 2021-06-07 06:39:01

问题是我使用的是较旧版本的Apache POI。我尝试了Apache POI 5.0.0,结果要好得多。

Maven:

代码语言:javascript
运行
复制
<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi</artifactId>
    <version>5.0.0</version>
</dependency>
票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65807088

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档