image.png (12.1 KB)
如图,可否只保留红框中的椭圆,而不保留周围的空白?
以下是我的源代码,从一个目录中读取vsd图片,然后转成PNG图片,但是会把vsd图片背后的画布一并转出来,能否只把图形本身,也就椭圆转换成PNG而不要带多余的空白
InputStream stream = new FileInputStream(vsdPath);
Diagram vsdDiagram = new Diagram(stream);
ImageSaveOptions options = new ImageSaveOptions(SaveFileFormat.PNG);
options.setSaveForegroundPagesOnly(true);
PageSize size = options.getPageSize();
vsdDiagram.save(outPathPNG, options);
源vsd图片.zip (6.1 KB)
感谢您分享所需信息。
为了只将形状转换为PNG图像,您可以使用Shape.toImage()方法。请检查以下代码段以及生成的输出:
com.aspose.diagram.Diagram diagram = new com.aspose.diagram.Diagram(dataDir + "1.vsd");
com.aspose.diagram.ImageSaveOptions options = new com.aspose.diagram.ImageSaveOptions(com.aspose.diagram.SaveFileFormat.PNG);
for (com.aspose.diagram.Shape shape: (Iterable<com.aspose.diagram.Shape>)diagram.getPages().get(0).getShapes())
{
shape.toImage(dataDir + "Ellipse.png", options);
}
Ellipse.png (3.9 KB)
如有任何进一步的帮助,请随时告诉我们。
您提供的方法的确可以把图形取出,但是我希望的效果是和Visio软件另存效果相同,也就是如果里面有多个图形,可以将多个图形一起另存到一张PNG图片中而没有白色画布,如附件PNG图片中红框圈出来的部分,我将VSDX图片也添加在zip包中,请您指导example.zip (27.0 KB)
谢谢你回信。
我们已根据您的要求在我们的问题跟踪系统中记录了调查票据DIAGRAMJAVA-50641。我们将进一步检查该功能的可行性,并与您分享我们的反馈意见。请耐心等待我们。
我们对造成的不便很抱歉。
请问如何才能看到调查票据的跟踪情况呢?
感谢您给我们写信。
由于故障单已记录在我们的内部问题管理系统下,您将无法跟踪其状态。但是,只要我们有其他更新,我们会立即向您发布此论坛帖子中的票证解析状态。请多花点时间。
我们对造成的不便很抱歉。
十分抱歉,想再咨询下,大量空白的产生,是由于我使用Diagram的方法不对?还是由于Diagram类本身有bug?还是因为它目前不支持去掉空白画布?
十分抱歉,想再咨询下,大量空白的产生,是由于我使用Diagram的方法不对?还是由于Diagram类本身有bug?还是因为Diagram目前不支持去掉空白画布?
谢谢你的询问。
正如我们之前分享的Shape.toImage()方法以及相应的生成输出。空白空白仍处于导出状态。似乎API在导出时不会在形状周围移除白色画布。调查仍在进行中,我们将在完成后立即分享一些反馈意见。
同时,如果您能够使用MS VISIO实现所需的输出,请与您分享吗?如果是,请分享导出的输出和步骤以生成它。它还可以帮助我们增加更多调查您的要求。
我另存PNG图的方式是:File–>Save as–>PNG 图片,另存为PNG图片时,设置项均为默认
我们通过使用MS VISIO导出形状来测试场景,结果与使用Shape.toImage()方法生成的Aspose.Diagram相同。为了您的参考,两个输出文件都已附加。
1_Aspose.Diagram.png (3.9 KB)
1_MSVISIO.png (3.3 KB)
如果您想获得具有透明背景的图像,请您澄清一下吗?如果您能与我们分享您想要的输出样本,将会很有帮助。我们将再次测试我们环境中的场景并相应地解决它。
Image&Code.zip (38.8 KB)
十分感谢您的耐心回复,我将我的代码以及使用的源VSD图像分享给您,请您帮忙分析:
1.zip包中有我使用的图片、生成的图片以及我写的单元测试代码,详细说明如下:
AsposeDiagram-ImageSaveOptions文件夹中是我使用Aspose.Diagram的save方法以及ImageSaveOptions类保存出来的图片以及单元测试代码
Shape.toImage文件夹中是我使用Shape类生成的图片以及单元测试代码,我本地的测试结果是会对每个图形生成一张PNG图片,因此共生成三张PNG图片
MSVisio.PNG 是我用MS Visio保存出来的PNG图片,这张图片就是我想要的效果图
test1.vsdx 是我使用源VSD图片
2.我使用的aspose.Diagram版本:aspose-diagram-18.12.0-jdk16.jar
3.我使用的MS Visio版本:MicroSoft Visio Professional 2013
除了请您帮忙分析,还请您给我分享您使用aspose.Diagram类以及ImageSaveOptions类保存的源码
感谢您分享所有资源。
考虑到您共享的详细信息,我们再次测试了该方案,并发现API无法以与MS Visio相同的方式将Diagram导出到PNG中。我们已更新先前记录的故障单的信息,并将进一步详细调查。一旦我们得到一些调查结果,我们一定会及时更新您。我们非常感谢您在这方面的合作和耐心。请多花点时间。
我们对造成的不便很抱歉。
你好,请问此问题是否有解决方案?
The issues you have found earlier (filed as DIAGRAMJAVA-50641) have been fixed in this update. This message was posted using Bugs notification tool by philip.zhou