我嘗試解釋用diagrams.net創建的圖表的 XML 檔案。所有圖形元素都可以輕松讀取,但手繪工具的編碼不可讀。雖然我選擇不壓縮保存,這部分可以以壓縮格式無縫保存嗎?有一個明顯隨機的字母、數字和一些特殊字符 ( , /, =)序列來描述這里看到的短筆畫:
筆畫編碼從第二行開始stencil((完整代碼可在此處找到)。
這個序列中的筆畫是如何編碼的?
<mxCell id="c7RGBG_HR7ZXm5QX32jH-9" value="" style="shape=
stencil(lZTdboMwDIWfhlsrsZM4ue6696hUOtAYVJTu5 1nFG0jSPOWu2DOF/s4lhs63Lr
TtW3Q3JZ5em7f vPSNfTQIPZj1879IqeGjg0dLtPcPs3TfTzn7 tpVa6nl l1veE9cwaMWSE0Hzlgz
XfoMQNDP24ACxarAA/RFkAMEFhJQGBSAbAFRwoQAEsPQc8gHogLwEcgJQMy NKDE1cKQATJFYBEtA
zOAMcCkL5pXXUMWJZkddMe9x6sRLR3E9OlB71JQa4ru rAKgUFBhcKvT5HMgWcavQeUqzRpy97/9NHB
KypP8qDVukZ2Nbo037mdH1CMFV6AsYavQf0NfqwH9A/9NIfrtFHiDXzsNlrvwFy N
mrl34Y8lre/t/vYQnlHU7HTw==);
fillColor=none;" vertex="1" parent="1"> <mxGeometry x="277.5999755859375"
y="238.19998168945312" width="71.60000610351562" height="2.399993896484375"
as="geometry" /> </mxCell>
如果我將它保存為 SVG 檔案,那么坐標是可讀的(完整的 SVG 代碼)。
path d="M -0.4 2.6 L 0.4 2.6 L 3.76 2.28 L 8.97 1.91 L 11.2 1.8 L 14.9 1.6 L 19.3 1.3 L 23.9 1 L 28.8 0.8 L 33.4 0.6 L 37.2 0.5 L 40.8 0.4 L 44.4 0.3 L 47.9 0.2 L 51 0.2 L 54 0.2 L 56.4 0.2 L 58.5 0.2 L 60.5 0.2 L 62.4 0.2 L 64 0.2 L 65.5 0.2 L 66.7 0.2 L 67.8 0.2 L 68.7 0.2 L 69.6 0.2 L 70.4 0.2 L 71.2 0.2"
手繪工具可以在選單排列->插入->手繪中找到。XML 在選單檔案-> 匯出為-> XML 中沒有壓縮保存。
uj5u.com熱心網友回復:
原始文本是 Base64 編碼的,然后通過 deflate 和 URL 編碼進行壓縮。原始文本可以通過以下方式重構:
- Base64 解碼
- 膨脹
- 網址解碼
可在此處找到轉換工具和說明:
https://j2r2b.github.io/2019/08/01/drawio-decompressed-xml.html
Python 3. 代碼
import base64,zlib,urllib
decoded_text=urllib.parse.unquote(zlib.decompress(base64.b64decode(encoded_text),wbits=-15))
OP的壓縮代碼是
lZTdboMwDIWfhlsrsZM4ue6696hUOtAYVJTu5 1nFG0jSPOWu2DOF/s4lhs63Lr
TtW3Q3JZ5em7f vPSNfTQIPZj1879IqeGjg0dLtPcPs3TfTzn7 tpVa6nl l1ve
E9cwaMWSE0HzlgzXfoMQNDP24ACxarAA/RFkAMEFhJQGBSAbAFRwoQAEsPQc8gH
ogLwEcgJQMy NKDE1cKQATJFYBEtAzOAMcCkL5pXXUMWJZkddMe9x6sRLR3E9Ol
B71JQa4ru rAKgUFBhcKvT5HMgWcavQeUqzRpy97/9NHBKypP8qDVukZ2Nbo037
mdH1CMFV6AsYavQf0NfqwH9A/9NIfrtFHiDXzsNlrvwFy Nmrl34Y8lre/t/vYQ
nlHU7HTw==
轉換后(使用工具或python):
<shape strokewidth="inherit"><foreground><path><move x="0.00"
y="100.00"/><line x="1.12" y="100.00"/><line x="5.81" y="86.67"/>
<line x="13.09" y="71.43"/><line x="16.20" y="66.67"/><line x="21.37"
y="58.33"/><line x="27.51" y="45.83"/><line x="33.94" y="33.33"/>
<line x="40.78" y="25.00"/><line x="47.21" y="16.67"/><line x="52.51"
y="12.50"/><line x="57.54" y="8.33"/><line x="62.57" y="4.17"/>
<line x="67.46" y="0.00"/><line x="71.79" y="0.00"/><line x="75.98"
y="0.00"/><line x="79.33" y="0.00"/><line x="82.26" y="0.00"/>
<line x="85.06" y="0.00"/><line x="87.71" y="0.00"/><line x="89.94"
y="0.00"/><line x="92.04" y="0.00"/><line x="93.72" y="0.00"/>
<line x="95.25" y="0.00"/><line x="96.51" y="0.00"/><line x="97.77"
y="0.00"/><line x="98.88" y="0.00"/><line x="100.00" y="0.00"/>
</path><fillstroke/></foreground></shape>
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/359599.html
