Aspose.Imaging for Javaを使用してwmfからpngへの変換を行っています。
以下の処理でpngに保存したのですが、正しく保存できませんでした。(形が崩れてしまう)
正しく保存し直す方法はありますでしょうか。
public static void convertWmfByAspose(Path inputPath, Path outputPath)
throws FileNotFoundException, IOException {
// https://docs.aspose.com/display/imagingnet/Converting+WMF+and+EMF+to+Other+Image+Formats
try (FileInputStream inputStream = new FileInputStream(inputPath.toFile());
FileOutputStream outputStream = new FileOutputStream(outputPath.toFile());
Image image = Image.load(inputStream);
WmfRasterizationOptions rasterizationOptions = new WmfRasterizationOptions();) {
rasterizationOptions.setBackgroundColor(Color.getWhiteSmoke());
rasterizationOptions.setPageWidth(image.getWidth());
rasterizationOptions.setPageHeight(image.getHeight());
PngOptions pngOption = new PngOptions();
pngOption.setVectorRasterizationOptions(rasterizationOptions);
image.save(outputStream, pngOption);
}
}
使用バージョン:Aspose.Imaging for Java 20.3
サンプルデータ:convert.zip (1.1 KB)
@yudai_yamaguchi,
共有されているサンプルファイルを使用して作業し、指定された問題を確認しました。 問題をさらに調査して解決するために、ID IMAGINGJAVA-1617 の問題が問題追跡システムに作成されました。 このスレッドは問題にリンクされているため、問題が修正されると通知されます。
@yudai_yamaguchi,
在这里问题仅存在于客户映像 image1.zip
中,可能此映像已损坏。
在结构上,这是最简单的WMF图像,仅包含一个用于输出文本的指令。
如您所见,由于导出,我们得到以下图像:
image1.wmf_convert.png
在图像的底部,您可以看到此文本中的部分字符,同时您可以了解此处的字体大小是巨大的。
这里的问题是描述字体的条目包含无效数据:
image1_hex.PNG
在Aspose.Imaging中,绝对值是字体高度的值,因此在输出中您会看到这么大的字体。
字体名称也包含无效值:
font.PNG
这是指向这些记录的规范的几个链接:
•META_CREATEFONTINDIRECT记录-[MS-WMF]: META_CREATEFONTINDIRECT Record | Microsoft Learn
•字体记录-[MS-WMF]: Font Object | Microsoft Learn
回答ありがとうございます。
このファイルはアプリケーションで正常に作ることができます。
作り方は以下の通りです。
1、PowerPointにWordPadのファイルを埋め込む
2、作成したPowerPointをzipとして展開する
3、展開したファイルのmediaフォルダにwmfが配置されている
正常に作れるファイルなのでASPOSEで対応していただくことはできないでしょうか。
fail_wmf.zip (91.9 KB)
@yudai_yamaguchi,
詳細をお知らせいただきありがとうございます。 フィードバックはできるだけ早く共有します。
こちらチケットはCloseになっていますがこれは対応が完了したということでしょうか。
@yudai_yamaguchi
次のサンプルコードを使用して、最新のAspose.Imaging for Java20.11を使用してみることをお勧めします。
try (Image image = Image.load("image1.wmf"))
{
WmfRasterizationOptions wmfOptions = new WmfRasterizationOptions();
wmfOptions.setTextRenderingHint(TextRenderingHint.SingleBitPerPixel);
wmfOptions.setSmoothingMode(SmoothingMode.None);
wmfOptions.setPageWidth(image.getWidth());
wmfOptions.setPageHeight(image.getHeight());
PngOptions options = new PngOptions();
options.setVectorRasterizationOptions(wmfOptions);
image.save("output.png", options);
}
形が崩れてしまうことは解決していました。
ありがとうございます。
しかし、評価版であるようなメッセージがpngの左上に表示されてしまう現象が起きています。
サンプルデータに変換後のpngを添付しています。
ご確認の程よろしくお願いいたします。
使用バージョン:Aspose.Imaging for Java 20.10
サンプルデータ:image1.zip (105.6 KB)
@yudai_yamaguchi
評価透かしを回避するために、有効な製品ライセンスを使用する必要がある場合があります。 この点に関する参考資料として、このドキュメントのリンクにアクセスしてください。
すみません。ドキュメントのリンクとありますがどれのことでしょうか。