栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

在JavaFX 2.0中加载SVG文件

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

在JavaFX 2.0中加载SVG文件

根据这个问题的答案,我找到了一个可行的解决方案。

1.包括对蜡染SVG工具包罐的引用

2.实现自己的转码器
(基于此答案由Devon_C_Miller)

class MyTransprer extends ImageTransprer {    private BufferedImage image = null;    @Override    public BufferedImage createImage(int w, int h) {        image = new BufferedImage(w, h, BufferedImage.TYPE_INT_ARGB);        return image;    }    @Override    public void writeImage(BufferedImage img, TransprerOutput out) {    }    public BufferedImage getImage() {        return image;    }

}

3.从您的svg获取BufferedImage
(基于John Doppelmann在此答案中的提示)

String uri = "path_to_svg/some.svg";MyTransprer transprer = new MyTransprer();TranscodingHints hints = new TranscodingHints();hints.put(ImageTransprer.KEY_WIDTH, 20f); //your image widthhints.put(ImageTransprer.KEY_HEIGHT, 20f); //your image heighthints.put(ImageTransprer.KEY_DOM_IMPLEMENTATION,    SVGDOMImplementation.getDOMImplementation());hints.put(ImageTransprer.KEY_document_ELEMENT_NAMESPACE_URI, SVGConstants.SVG_NAMESPACE_URI);hints.put(ImageTransprer.KEY_document_ELEMENT, SVGConstants.SVG_SVG_TAG);hints.put(ImageTransprer.KEY_XML_PARSER_VALIDATING, false);transprer.setTranscodingHints(hints);TransprerInput input = new TransprerInput(url.toExternalForm());transprer.transpre(input, null);BufferedImage bufferedImage = transprer.getImage();

4.从BufferedImage创建一个InputStream

ByteArrayOutputStream outputStream = new ByteArrayOutputStream();JPEGImageEnprer imageEnprer = JPEGCodec.createJPEGEnprer(outputStream);imageEnprer.enpre(bufferedImage);byte[] bytes = outputStream.toByteArray();InputStream inputStream = new ByteArrayInputStream(bytes);

5.将图像添加到您的ImageView

//javafx.scene.image.ImageImage image = new Image(inputStream);//javafx.scene.image.ImageViewImageView imageView = new ImageView();imageView.setImage(image);this.getChildren().add(imageView);

希望这会有所帮助!



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/428500.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号