aspose diagram for java测试问题.7z (2.1 MB)
我正在测试aspose diagram for java,但是目前发现有两个问题:
1、emf文件,使用apsose-image java工具包,本地转换很慢,使用apose公网Online Image Converter - Convert Images, Photos, Pictures Free 进行转换很快,时间相差好几倍。
2、vsd转vsdx,内容有丢失。
所有的源文件和示例代码都是在附件里面,请帮忙确认一下问题。
@jillian
感谢您提供的文件。第一个问题请提供转换的初始文件,谢谢
经过初步测试,我们重现了第二个问题,我们发现vsd转成vsdx时,有些shape丢失了。
我们已在我们的内部问题跟踪系统中打开了以下新工单,并将根据 Free Support Policies 中提到的条款提供他们的修复。
问题 ID:DIAGRAMJAVA-51262
如果您需要优先支持以及直接联系我们的付费支持管理团队,您可以获得 Paid Support Services。
这个"emf"图像的大小为102827x18063像素,只需要7085MB~7gb RAM即可存储。
另外,解码和绘制它需要大约相同的数量,这意味着您需要大约14GB的RAM。
因此,Aspose映像通过使用磁盘空间切换到内存节省模式。
这是操作缓慢的原因。
在线图像转换器托管在具有大量内存和高速磁盘的服务器上,因此在那里处理速度更快。 或者,在线图像转换器会自动缩放图像(见下文),从而加快其转换速度。
为避免在处理此类图像时出现严重减速,您可以在导出时将图像大小减小到可接受的大小。
例如:
final int MAX_ONE_SIZE = 3000; // pixels
final int MAX_SIZE = MAX_ONE_SIZE * MAX_ONE_SIZE; // 3000 x 3000 pixels
try (Image image = Image.load("emf源文件.emf"))
{
PngOptions exportOptions = new PngOptions();
if (image instanceof VectorImage)
{
final float imageWidth = image.getWidth();
final float imageHeight = image.getHeight();
if (imageWidth * imageHeight > MAX_SIZE)
{
float cf = MAX_ONE_SIZE / Math.max(imageWidth, imageHeight);
final ImageOptionsBase options = image.getOriginalOptions();
VectorRasterizationOptions vectorOptions = options != null ? options.getVectorRasterizationOptions() : null;
if (vectorOptions == null)
{
vectorOptions = new VectorRasterizationOptions();
}
vectorOptions.setPageWidth(imageWidth * cf);
vectorOptions.setPageHeight(imageHeight * cf);
exportOptions.setVectorRasterizationOptions(vectorOptions);
}
}
image.save("emf源文件.emf.png", exportOptions);
}
注意:请不要忘记使用 try(){}
处理图像,或者在不再需要图像时自己调用 Image.close()
,因为这将加快释放已用内存的过程。
请问这个问题有进展了吗?
@jillian
您好,这个二进制文件的数据比较特殊,我们在加载过程中出现了问题。目前还在继续分析解决中。一旦有任何关于这些问题的更新,我们将及时通知您。
解决时间取决于问题的复杂性和我们当前的任务计划。同时,您可以尝试在 Visio中重新保存此文件(以相同格式或其他格式),有时会有所帮助.
给您带来不便敬请谅解。
我们很高兴地通知您,您的问题(票号:“DIAGRAMJAVA-51262”)已得到解决。修复将包含在我们计划于 2025 年 5 月上半月发布的即将发布的版本(Aspose.Diagram v25.5)中。下一个版本发布时,我们会通知您。
The issues you have found earlier (filed as DIAGRAMJAVA-51262) have been fixed in this update. This message was posted using Bugs notification tool by philip.zhou