Skip to content

Add wmf support #54

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 180 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
180 commits
Select commit Hold shift + click to select a range
429aa13
Added file Readme.md
lindexi Sep 21, 2015
258a095
忽略文件
lindexi Jul 28, 2020
43bbd5f
Added file Readme.md
lindexi Sep 21, 2015
39fa705
Merge branch 'empty' of gitee.com:lindexi/lindexi_gd into empty
lindexi Jul 28, 2020
834e171
修改许可
lindexi Mar 5, 2021
db94874
创建自动合并工具
lindexi Dec 15, 2023
a996a2b
加上辅助的 bat 文件
lindexi Dec 15, 2023
eeefd07
支持切换走
lindexi Jan 16, 2024
9eef382
加上辅助切换的文件
lindexi Jan 16, 2024
36a9ac4
修复执行
lindexi Jan 16, 2024
13fe004
自动输出当前版本号
lindexi Jan 18, 2024
a0ee30a
加个空格优化控制台
lindexi Jan 18, 2024
aac7465
忽略切换的输出
lindexi Feb 24, 2024
0095603
尝试其他命令
lindexi Jun 4, 2024
46cfb5e
添加更多参数内容
lindexi Jul 25, 2025
9ed2b89
内置 wmf 转换支持
lindexi Jul 25, 2025
c0c86cb
添加日志记录的支持
lindexi Jul 25, 2025
a39d692
减少路径拼接
lindexi Jul 25, 2025
40a1159
优化输出错误信息
lindexi Jul 25, 2025
436c7fc
拆分调用方法
lindexi Jul 25, 2025
1871d50
优化判断条件防止逻辑复杂
lindexi Jul 25, 2025
17c10ae
添加更多失败理由
lindexi Jul 25, 2025
8f14581
记录耗时信息
lindexi Jul 25, 2025
6f5d9bc
添加总的耗时
lindexi Jul 25, 2025
9020364
记录拷贝图片文件是耗时
lindexi Jul 25, 2025
713079b
记录实际上创建文件夹耗时
lindexi Jul 25, 2025
18203a5
减少影响,不写入日志文件
lindexi Jul 25, 2025
2c2a9b6
有写日志时,调用 ConvertWithInkscapeLibWmf 是 17 毫秒,没有写日志文件是 190 毫秒
lindexi Jul 25, 2025
e7f9c0a
不写入内容时,执行时间十分长
lindexi Jul 25, 2025
7144866
添加耗时记录
lindexi Jul 25, 2025
e5d8df1
Revert "不写入内容时,执行时间十分长"
lindexi Jul 25, 2025
f0610a1
Revert "有写日志时,调用 ConvertWithInkscapeLibWmf 是 17 毫秒,没有写日志文件是 190 毫秒"
lindexi Jul 25, 2025
d6857cd
Revert "减少影响,不写入日志文件"
lindexi Jul 25, 2025
9b88ee1
Revert "记录实际上创建文件夹耗时"
lindexi Jul 25, 2025
4dae05e
Revert "记录拷贝图片文件是耗时"
lindexi Jul 25, 2025
679579a
Revert "添加总的耗时"
lindexi Jul 25, 2025
fd13a00
Revert "记录耗时信息"
lindexi Jul 25, 2025
c7673b6
明确不存在的记录减少异常内容
lindexi Jul 25, 2025
61fd052
处理更多进程转换错误
lindexi Jul 25, 2025
6c68f1c
进程执行失败也记录日志
lindexi Jul 25, 2025
cddf01b
搭建项目逻辑
lindexi Jul 27, 2025
580de24
逻辑卡住因为不知道如何处理宽度高度换算
lindexi Jul 27, 2025
79674f7
似乎无法计算为像素单位
lindexi Jul 27, 2025
3558804
加上对比测试内容
lindexi Jul 27, 2025
186ccd4
无法直接算到正确的值
lindexi Jul 27, 2025
4d8fb0d
无法计算到正确的数值
lindexi Jul 27, 2025
6671321
测试其他图片返回正常尺寸
lindexi Jul 27, 2025
49608c5
继续挣扎计算,但依然不正确
lindexi Jul 27, 2025
99c62ee
更换测试的图片
lindexi Jul 27, 2025
6fe0b6a
尝试自己绘制内容但结果和别人的库绘制效果差不多
lindexi Jul 27, 2025
8c959ca
挣扎加入计算,但依然错误
lindexi Jul 27, 2025
30bf559
似乎只作为间距能够正确
lindexi Jul 27, 2025
ac72252
尝试记录上一个字符的内容,会让字符超过画布
lindexi Jul 27, 2025
ebab5de
Revert "尝试记录上一个字符的内容,会让字符超过画布"
lindexi Jul 27, 2025
505a11c
简化编码处理方法
lindexi Jul 27, 2025
fe2ae56
依然无法计算到正确的值
lindexi Jul 27, 2025
0380b0c
Revert "依然无法计算到正确的值"
lindexi Jul 27, 2025
af14684
似乎间距过大无法处理
lindexi Jul 27, 2025
704ac6a
似乎能够计算正确
lindexi Jul 27, 2025
677cbe1
去掉干扰代码
lindexi Jul 27, 2025
f0ffe84
提供变量减少重复代码
lindexi Jul 27, 2025
373d303
修复公式计算逻辑
lindexi Jul 27, 2025
0ddf78d
修复文本颜色
lindexi Jul 27, 2025
50261e2
修改变变量名
lindexi Jul 27, 2025
21a9c97
测试加载图片但不支持
lindexi Jul 27, 2025
d72beb0
Revert "测试加载图片但不支持"
lindexi Jul 27, 2025
b55b9d4
给出测试内容
lindexi Jul 28, 2025
f2b4895
Revert "给出测试内容"
lindexi Jul 28, 2025
91bf376
对接斜体文本内容
lindexi Jul 28, 2025
a3c8f8e
拷贝和创建项目
lindexi Jul 28, 2025
15371c4
修改大小写命名
lindexi Jul 28, 2025
839048f
完成基础搭建逻辑
lindexi Jul 28, 2025
1215e4b
搭建转换对接逻辑
lindexi Jul 28, 2025
087095e
拆分具体渲染逻辑
lindexi Jul 28, 2025
03313a0
完成转换逻辑对接
lindexi Jul 28, 2025
a22d9b6
拆分文件
lindexi Jul 28, 2025
7bbbf5c
减少重复代码
lindexi Jul 28, 2025
1e3b4f8
去掉所有 gdi 的调用
lindexi Jul 28, 2025
2c58502
添加对比工具
lindexi Jul 28, 2025
9778a53
支持本机发布
lindexi Jul 28, 2025
fd290aa
修复根号绘制错误
lindexi Jul 28, 2025
3ab38a2
拆分方法
lindexi Jul 28, 2025
d2c9665
优化根号的绘制
lindexi Jul 28, 2025
6940982
拆分方法
lindexi Jul 28, 2025
8f70cd9
尝试提供缩放计算逻辑
lindexi Jul 28, 2025
a8ef280
处理空白内容
lindexi Jul 28, 2025
14d17f2
似乎无法计算准确的坐标值
lindexi Jul 28, 2025
d944ba5
完成基础的示例图片
lindexi Jul 28, 2025
88550f5
测试不正确的值
lindexi Jul 28, 2025
9be62da
Revert "测试不正确的值"
lindexi Jul 28, 2025
840c065
修复缩放值
lindexi Jul 28, 2025
b5147fe
加上判断能否渲染的条件
lindexi Jul 28, 2025
ca87bbf
修复图片转换失败
lindexi Jul 28, 2025
f8727f5
尝试优化渲染内容
lindexi Jul 28, 2025
debc674
支持 aot 构建减少反射代码实现
lindexi Jul 28, 2025
4dbb824
提供日志输出
lindexi Jul 28, 2025
232d5bd
实现文本内容
lindexi Jul 28, 2025
da21344
支持编码格式内容
lindexi Jul 29, 2025
2b0ead0
修改命名
lindexi Jul 29, 2025
f3c8397
准备合入
lindexi Jul 29, 2025
4afb6ea
Merge commit 'f3c83971935a89c552b251c0b10cbdc09c3a9640'
lindexi Jul 29, 2025
7ed842d
修改所在文件夹
lindexi Jul 29, 2025
3e06a1e
更新文档内容
lindexi Jul 29, 2025
022d0b4
添加 wmf 的引用
lindexi Jul 29, 2025
8491d93
开放更多设置方法
lindexi Jul 29, 2025
3d263d0
统一使用的版本
lindexi Jul 29, 2025
e3b9a88
降级版本,防止无法在 UOS 上运行
lindexi Jul 29, 2025
f26b8c2
经过测试,能够拿到字体,但渲染内容是空的
lindexi Jul 29, 2025
519863f
尝试去掉多余的内容
lindexi Jul 29, 2025
c1b3aa6
测试符号字体渲染是方框
lindexi Jul 29, 2025
c71f25a
更换方式加载字体,依然失败
lindexi Jul 29, 2025
647dade
无法处理字体里面的内容
lindexi Jul 29, 2025
591f9f4
换个字体继续尝试
lindexi Jul 29, 2025
4799789
尝试升级库测试效果
lindexi Jul 29, 2025
e71a933
切换绘制方式,依然是方框
lindexi Jul 29, 2025
2e8a99f
带上更多辅助支持,可以正确解析
lindexi Jul 29, 2025
2d514b2
解决另一个字符是方框
lindexi Jul 29, 2025
6e09e3c
完成对接逻辑
lindexi Jul 30, 2025
d930568
完成字符的正确渲染
lindexi Jul 30, 2025
fb85d00
去掉调试代码
lindexi Jul 30, 2025
1b22f8c
尝试带上转换工具的一部分
lindexi Jul 30, 2025
c532987
尝试带上字体
lindexi Jul 30, 2025
2b6408d
处理抛出异常的返回值
lindexi Jul 30, 2025
216f7f7
修复执行路径写错
lindexi Jul 30, 2025
2937876
优化调试内容
lindexi Jul 30, 2025
c374ff0
添加 SkiaWmfRenderer 支持进行图元优化
lindexi Jul 30, 2025
6f045b4
支持传递参数
lindexi Jul 30, 2025
e1b7107
加上默认的字体
lindexi Jul 30, 2025
2a9b0c5
尝试自己设置可执行权限
lindexi Jul 31, 2025
14123f5
资源也带上包
lindexi Jul 31, 2025
8145f4d
添加更多常用字体
lindexi Jul 31, 2025
db5ca03
添加龙芯版本
lindexi Jul 31, 2025
91ddcd3
尝试带上龙芯源但没有构建机器
lindexi Jul 31, 2025
f92cb60
Revert "尝试带上龙芯源但没有构建机器"
lindexi Jul 31, 2025
d881934
为了适配龙芯,尝试降级版本
lindexi Jul 31, 2025
0153f7d
Revert "为了适配龙芯,尝试降级版本"
lindexi Jul 31, 2025
8afbcd5
包版本降级,临时适配龙芯构建
lindexi Jul 31, 2025
2f2693b
继续降级运行时版本,用于方便龙芯和项目集成
lindexi Jul 31, 2025
b23e858
Revert "继续降级运行时版本,用于方便龙芯和项目集成"
lindexi Jul 31, 2025
e4fa896
Revert "包版本降级,临时适配龙芯构建"
lindexi Jul 31, 2025
e7f874f
尝试修复单元测试
lindexi Jul 31, 2025
324c914
源代码引用 wieslawsoltes-wmf 库准备打出独立的包
lindexi Jul 31, 2025
c956dc1
防止传递依赖
lindexi Jul 31, 2025
a44d6f4
打包加上文档内容
lindexi Jul 31, 2025
778b66e
准备发布带上符号
lindexi Jul 31, 2025
7f1ba3d
修改命名空间
lindexi Jul 31, 2025
6fbfac1
尝试修复构建
lindexi Jul 31, 2025
f566f7f
更正描述信息
lindexi Jul 31, 2025
c5528ff
支持 arm64 的包
lindexi Aug 1, 2025
0197e51
在 GPT 帮助下补充文档
lindexi Aug 1, 2025
b9e3a08
删除其他干扰项提高打包速度减少成本
lindexi Aug 22, 2025
54db0f0
开始测试上传的内容
lindexi Aug 22, 2025
8041506
尝试修复语法
lindexi Aug 22, 2025
cfb85f0
减少打包大小
lindexi Aug 22, 2025
6b7cfc8
修改容器打包尝试降低 GLibC 版本
lindexi Aug 22, 2025
50c7d11
测试非简单的版本
lindexi Aug 22, 2025
7e496fa
添加更多工具
lindexi Aug 22, 2025
c0e757f
更新更新包源
lindexi Aug 22, 2025
d0f8bbd
替换掉腾讯的源
lindexi Aug 22, 2025
3d9c94d
更改打包平台执行测试
lindexi Aug 22, 2025
6844e51
继续挣扎包源
lindexi Aug 22, 2025
b43b73c
继续挣扎一下
lindexi Aug 22, 2025
11ea8e8
再次挣扎一下
lindexi Aug 22, 2025
ee2736e
继续挣扎一会
lindexi Aug 22, 2025
74de4b9
Revert "减少打包大小"
lindexi Aug 22, 2025
eadcd9d
Revert "删除其他干扰项提高打包速度减少成本"
lindexi Aug 22, 2025
1ad27a3
还原代码
lindexi Aug 22, 2025
a2dd052
修改发布降低 GLibC 版本
lindexi Aug 22, 2025
f6a8fbb
测试打包
lindexi Aug 22, 2025
30b293b
先安装 .NET 再装工具
lindexi Aug 22, 2025
6ede232
尝试修复找不到工具
lindexi Aug 22, 2025
ab67bd7
尝试导出工具
lindexi Aug 22, 2025
8d17d01
换个方式添加工具
lindexi Aug 22, 2025
a654cdc
Revert "换个方式添加工具"
lindexi Aug 22, 2025
a8fefbe
Revert "尝试导出工具"
lindexi Aug 22, 2025
797622e
Revert "尝试修复找不到工具"
lindexi Aug 22, 2025
881e280
Revert "先安装 .NET 再装工具"
lindexi Aug 22, 2025
50feca9
Revert "测试打包"
lindexi Aug 22, 2025
957707a
整理准备正式打包
lindexi Aug 22, 2025
03d2162
Merge pull request #56 from dotnet-campus/t/lindexi/FixGlibc
lindexi Aug 22, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
81 changes: 69 additions & 12 deletions .github/workflows/NuGet-tag-publish-MediaConverters.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,9 @@ jobs:
- name: Pack MediaConverters.Tool.ContextNuGet
run: dotnet pack --no-build true --configuration Release src\MediaConverters\MediaConverters.Tool.ContextNuGet\MediaConverters.Tool.ContextNuGet.csproj

- name: Pack DotNetCampus.MediaConverter.SkiaWmfRenderer
run: dotnet pack --no-build true --configuration Release src\MediaConverters\SkiaWmfRenderer\src\SkiaWmfRenderer\SkiaWmfRenderer.csproj

- name: Publish and Pack win-x86
run: |
dotnet publish -c Release -r win-x86 src\MediaConverters\MediaConverters.Tool\MediaConverters.Tool.csproj
Expand Down Expand Up @@ -69,16 +72,34 @@ jobs:
PackOnLinuxX64:

runs-on: ubuntu-latest
container:
image: debian:buster-slim

steps:
# 由于 Debian 10 (buster) 停止维护了,需要换成 archive.debian.org 源头
- name: UpdateSource
run: |
rm /etc/apt/sources.list
echo 'deb http://archive.debian.org/debian buster main contrib non-free' >> /etc/apt/sources.list
echo 'deb http://archive.debian.org/debian buster-updates main contrib non-free' >> /etc/apt/sources.list
echo 'deb http://archive.debian.org/debian-security buster/updates main contrib non-free' >> /etc/apt/sources.list
- name: InstallTool
run: |
dpkg --add-architecture arm64
apt-get clean
apt-get update
apt-get install libicu-dev -y
apt-get install libssl-dev -y
apt-get install wget -y
apt-get install curl -y
apt-get install clang llvm -y
apt-get install gcc-aarch64-linux-gnu -y
apt-get install binutils-aarch64-linux-gnu -y
apt-get install zlib1g-dev -y
apt-get install zlib1g-dev:arm64 -y

- uses: actions/checkout@v4

- name: Install dotnet tool
run: dotnet tool install -g dotnetCampus.TagToVersion

- name: Set tag to version
run: dotnet TagToVersion -t ${{ github.ref }}

- name: Setup .NET
uses: actions/setup-dotnet@v1
with:
Expand All @@ -88,6 +109,15 @@ jobs:
6.0.x
9.0.x

- name: Add .NET global tools to PATH
run: echo "$HOME/.dotnet/tools" >> $GITHUB_PATH

- name: Install dotnet tool
run: dotnet tool install -g dotnetCampus.TagToVersion

- name: Set tag to version
run: dotnet-TagToVersion -t ${{ github.ref }}

- name: Build with dotnet
run: dotnet build --configuration Release src/MediaConverters/MediaConverters.sln

Expand All @@ -104,15 +134,33 @@ jobs:
PackOnLinuxArm64:

runs-on: ubuntu-24.04-arm
container:
image: debian:buster-slim

steps:
- uses: actions/checkout@v4

- name: Install dotnet tool
run: dotnet tool install -g dotnetCampus.TagToVersion
# 由于 Debian 10 (buster) 停止维护了,需要换成 archive.debian.org 源头
- name: UpdateSource
run: |
rm /etc/apt/sources.list
echo 'deb http://archive.debian.org/debian buster main contrib non-free' >> /etc/apt/sources.list
echo 'deb http://archive.debian.org/debian buster-updates main contrib non-free' >> /etc/apt/sources.list
echo 'deb http://archive.debian.org/debian-security buster/updates main contrib non-free' >> /etc/apt/sources.list
- name: InstallTool
run: |
dpkg --add-architecture arm64
apt-get clean
apt-get update
apt-get install libicu-dev -y
apt-get install libssl-dev -y
apt-get install wget -y
apt-get install curl -y
apt-get install clang llvm -y
apt-get install gcc-aarch64-linux-gnu -y
apt-get install binutils-aarch64-linux-gnu -y
apt-get install zlib1g-dev -y
apt-get install zlib1g-dev:arm64 -y

- name: Set tag to version
run: dotnet TagToVersion -t ${{ github.ref }}
- uses: actions/checkout@v4

- name: Setup .NET
uses: actions/setup-dotnet@v1
Expand All @@ -123,6 +171,15 @@ jobs:
6.0.x
9.0.x

- name: Add .NET global tools to PATH
run: echo "$HOME/.dotnet/tools" >> $GITHUB_PATH

- name: Install dotnet tool
run: dotnet tool install -g dotnetCampus.TagToVersion

- name: Set tag to version
run: dotnet-TagToVersion -t ${{ github.ref }}

- name: Build with dotnet
run: dotnet build --configuration Release src/MediaConverters/MediaConverters.sln

Expand Down
7 changes: 7 additions & 0 deletions Directory.Build.props
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
<Project>

<Import Project="build\Version.props" />

<PropertyGroup>
<LangVersion>latest</LangVersion>
<PackageOutputPath>$(MSBuildThisFileDirectory)bin\$(Configuration)</PackageOutputPath>
Expand All @@ -14,4 +16,9 @@
<Copyright>Copyright © 2020-$([System.DateTime]::Now.ToString(`yyyy`)) dotnet campus, All Rights Reserved.</Copyright>
<PackageLicenseExpression>MIT</PackageLicenseExpression>
</PropertyGroup>

<ItemGroup>
<SourceRoot Include="$(MSBuildThisFileDirectory)"/>
</ItemGroup>

</Project>
77 changes: 77 additions & 0 deletions src/MediaConverters/Docs/耗时记录文档.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
# 性能记录

## WMF 图片转换

Commit: e7f9c0adfe736c56e4e0207c15701ccd92b822d1

测试设备:

- CPU: Hygon C86-3G-3G (OPN:3350)
- 系统: Kylin Linux Desktop EDU V10 银河麒麟桌面操作系统(教育版)V10 2403

### 非 AOT 版本

```
lindexi@lindexi-pc:~/lin/sync/lin64$ ./DotNetCampus.MediaConverter
ReadJsonFile Cost 4ms
ParseJsonFile Cost 5ms
Start optimize image file. File='image.wmf' Total Cost 5ms
Copy new file to '/home/lindexi/linux-x64/Test_ldaqazwr.3nx/Copy_1ckqx3ma.hht_image.wmf' Total Cost 183ms
Copy new file Cost 179ms. ImageFile: '/home/lindexi/linux-x64/Test_ldaqazwr.3nx/Copy_1ckqx3ma.hht_image.wmf' Total Cost 183ms
Start convert emf or wmf to png by Inkscape. File='/home/lindexi/linux-x64/Test_ldaqazwr.3nx/Copy_1ckqx3ma.hht_image.wmf' Total Cost 185ms
Convert emf or wmf to svg by Inkscape failed. We will continue use libwmf to convert the image. File='/home/lindexi/linux-x64/Test_ldaqazwr.3nx/Copy_1ckqx3ma.hht_image.wmf' Exception: System.ComponentModel.Win32Exception (2): An error occurred trying to start process 'inkscape' with working directory '/home/lindexi/linux-x64'. No such file or directory
at System.Diagnostics.Process.ForkAndExecProcess(ProcessStartInfo startInfo, String resolvedFilename, String[] argv, String[] envp, String cwd, Boolean setCredentials, UInt32 userId, UInt32 groupId, UInt32[] groups, Int32& stdinFd, Int32& stdoutFd, Int32& stderrFd, Boolean usesTerminal, Boolean throwOnNoExec)
at System.Diagnostics.Process.StartCore(ProcessStartInfo startInfo)
at System.Diagnostics.Process.Start(ProcessStartInfo startInfo)
at DotNetCampus.MediaConverters.Imaging.Optimizations.EnhancedGraphicsMetafileOptimization.ConvertWithInkscape(ImageFileOptimizationContext context)
Total Cost 201ms
ConvertWithInkscape Cost 17ms Total Cost 202ms
ConvertWithInkscapeLibWmf Cost 17ms Total Cost 220ms
Load sk svg Cost 507ms Total Cost 729ms
Save sk svg to png Cost 17ms. OutputFile='/home/lindexi/linux-x64/Test_ldaqazwr.3nx/SVG_gh1sulx2.ezs.png' Total Cost 747ms
Convert svg to png file Cost 527ms. File='/home/lindexi/linux-x64/Test_ldaqazwr.3nx/FixSVG_csmcz2s1.p5b.svg' Total Cost 747ms
ConvertWmfOrEmfToPngFile Cost 564ms. ImageFile: '/home/lindexi/linux-x64/Test_ldaqazwr.3nx/Copy_1ckqx3ma.hht_image.wmf' Total Cost 747ms
Success ConvertWmfOrEmfToPngFile. Update current image file to '/home/lindexi/linux-x64/Test_ldaqazwr.3nx/SVG_gh1sulx2.ezs.png' Total Cost 748ms
Start optimize image with ImageSharp. ImageFile: '/home/lindexi/linux-x64/Test_ldaqazwr.3nx/SVG_gh1sulx2.ezs.png' Total Cost 748ms
Load image with ImageSharp Cost 79ms. ImageFile: '/home/lindexi/linux-x64/Test_ldaqazwr.3nx/SVG_gh1sulx2.ezs.png' Total Cost 827ms
Optimize image with ImageSharp Cost 3ms. ImageFile: '/home/lindexi/linux-x64/Test_ldaqazwr.3nx/SVG_gh1sulx2.ezs.png' Total Cost 831ms
Save optimized image with ImageSharp Cost 63ms. OutputImageFile: '/home/lindexi/linux-x64/Test_ldaqazwr.3nx/kipm4qr5.rav.png' Total Cost 895ms
OptimizeImageFileAsync Cost 895ms. File='/home/lindexi/linux-x64/image.wmf'
Success converted image. Cost 917ms. OutputFile='/home/lindexi/linux-x64/Test_ldaqazwr.3nx/1.png' Total Cost 895ms
```

### AOT 版本

```
lindexi@lindexi-pc:~/lin/sync/lin64$ ./DotNetCampus.MediaConverter
ReadJsonFile Cost 0ms
ParseJsonFile Cost 0ms
Start optimize image file. File='image.wmf' Total Cost 0ms
Check imageFile Exists Cost 0ms. Total Cost 0ms
CreateDirectory workingFolder Cost 0ms. Total Cost 0ms
Copy new file to '/home/lindexi/linux-x64/Test_3udgyrfq.ewe/Copy_cexmekrd.0ne_image.wmf' Total Cost 0ms
Copy new file Cost 0ms. ImageFile: '/home/lindexi/linux-x64/Test_3udgyrfq.ewe/Copy_cexmekrd.0ne_image.wmf' Total Cost 0ms
Start convert emf or wmf to png by Inkscape. File='/home/lindexi/linux-x64/Test_3udgyrfq.ewe/Copy_cexmekrd.0ne_image.wmf' Total Cost 0ms
Convert emf or wmf to svg by Inkscape failed. We will continue use libwmf to convert the image. File='/home/lindexi/linux-x64/Test_3udgyrfq.ewe/Copy_cexmekrd.0ne_image.wmf' Exception: System.ComponentModel.Win32Exception (2): An error occurred trying to start process 'inkscape' with working directory '/home/lindexi/linux-x64'. No such file or directory
at System.Diagnostics.Process.ForkAndExecProcess(ProcessStartInfo, String, String[], String[], String, Boolean, UInt32, UInt32, UInt32[], Int32&, Int32&, Int32&, Boolean, Boolean) + 0x404
at System.Diagnostics.Process.StartCore(ProcessStartInfo) + 0x303
at System.Diagnostics.Process.Start(ProcessStartInfo) + 0x3b
at DotNetCampus.MediaConverters.Imaging.Optimizations.EnhancedGraphicsMetafileOptimization.ConvertWithInkscape(ImageFileOptimizationContext) + 0x1fe
Total Cost 10ms
ConvertWithInkscape Cost 10ms Total Cost 10ms
Run wmf2svg process Cost 173ms Total Cost 184ms
ConvertWithInkscapeLibWmf Cost 174ms Total Cost 184ms
Load sk svg Cost 176ms Total Cost 361ms
Save sk svg to png Cost 11ms. OutputFile='/home/lindexi/linux-x64/Test_3udgyrfq.ewe/SVG_gjvqrzhr.haf.png' Total Cost 373ms
Convert svg to png file Cost 188ms. File='/home/lindexi/linux-x64/Test_3udgyrfq.ewe/FixSVG_ywzqj0xe.b0s.svg' Total Cost 373ms
ConvertWmfOrEmfToPngFile Cost 373ms. ImageFile: '/home/lindexi/linux-x64/Test_3udgyrfq.ewe/Copy_cexmekrd.0ne_image.wmf' Total Cost 373ms
Success ConvertWmfOrEmfToPngFile. Update current image file to '/home/lindexi/linux-x64/Test_3udgyrfq.ewe/SVG_gjvqrzhr.haf.png' Total Cost 373ms
Start optimize image with ImageSharp. ImageFile: '/home/lindexi/linux-x64/Test_3udgyrfq.ewe/SVG_gjvqrzhr.haf.png' Total Cost 373ms
Load image with ImageSharp Cost 1ms. ImageFile: '/home/lindexi/linux-x64/Test_3udgyrfq.ewe/SVG_gjvqrzhr.haf.png' Total Cost 374ms
Optimize image with ImageSharp Cost 0ms. ImageFile: '/home/lindexi/linux-x64/Test_3udgyrfq.ewe/SVG_gjvqrzhr.haf.png' Total Cost 375ms
Save optimized image with ImageSharp Cost 9ms. OutputImageFile: '/home/lindexi/linux-x64/Test_3udgyrfq.ewe/vuwjg5bf.xmt.png' Total Cost 384ms
OptimizeImageFileAsync Cost 384ms. File='/home/lindexi/linux-x64/image.wmf'
Success converted image. Cost 387ms. OutputFile='/home/lindexi/linux-x64/Test_3udgyrfq.ewe/1.png' Total Cost 384ms
```

可见 AOT 的版本只需非 AOT 版本的一半时间
Loading
Loading