在 tcl 中处理 canvas 复制问题

dealing with canvas copy trouble in tcl

我在 canvas 中创建了 Plotchart::createLogXYPlot。 我在同一 canvas 中绘制了多个图形。 (在同一 canvas 中使用多个图) 我需要这个 canvas 来复制或转换文件格式类型。 但是我正在搜索这个主题,对我没有帮助。

主要问题是保存的文件有剪辑img。

剪贴板canvas 对我不起作用。 (找不到关于 plotchart 的标签)

我正在尝试这些方法。

  1. 正在抓取canvas为img文件格式(剪辑麻烦)

    https://nikit.tcl-lang.org/page/Img#2155d00fdc05c6b6b85fa38ed5cd7dda67fd680886245dd51b6f9bcc0ba05a5c

  2. Snapshot canvas(剪辑麻烦又费时)

    https://groups.google.com/forum/#!topic/comp.lang.tcl/Dweb1ExDKhw

  3. 剪贴板canvas(没用)

    https://www.tcl.tk/man/tcl/TkCmd/clipboard.htm

  4. Plotchart using Saveplot (需要gs(gost脚本),我不会用,保存.ps文件成功)

    How to save Plotchart canvas other than PostScript without displaying it?

我认为,修复 img 剪辑问题对我来说是最简单的方法。

到目前为止的输出

Canvas 转换文件格式:

使用 snapshot 并转换文件格式:

原图:

如果您想将 canvas 保存为图像,此示例可能对您有所帮助:

package require Img pack [canvas .c -height 50 -width 50] .c create rectangle 0 0 25 25 -fill blue .c create rectangle 25 25 50 50 -fill green raise . ;# if there's anything over the window on-screen, it'll be obscured in the image update idletasks image create photo theCanvas -format window -data .c theCanvas write "C:\your\path\here\example.png" -format png

(注意:更新的行不是原来的)

来源:Mike Griffiths in tcl wiki

祝你好运,