проблема с копированием холста в tcl

Я создал с помощью Plotchart::createLogXYPlot на холсте. Я рисую несколько графиков на одном холсте. (Используя несколько сюжетов на одном холсте) Мне нужен этот холст для копирования или преобразования типа формата файла. Но я ищу эту тему, мне не помогло.

Основная беда - это сохраненный файл с вырезкой img.

Холст буфера обмена у меня не работает. (не могу найти тег о графике)

Я пробую эти способы.

  1. захват холста в формат файла img (проблема с обрезкой)

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

  2. Снимок холста (проблема вырезания и много времени)

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

  3. Холст буфера обмена (не работает)

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

  4. График с использованием Saveplot (нужен gs (гост-скрипты), я не буду его использовать, сохраненный файл .ps выполнен успешно)

    Как сохранить холст Plotchart, отличный от PostScript, без отображения это?

Я думаю, что исправить проблему с обрезкой img для меня проще всего.

Вывод до сих пор

Формат файла преобразования холста: Образец формата файла преобразования холста

Использование снимка и преобразование формата файла: использование снимка и преобразование формата файла Пример

Исходный график: исходный график


person jinsu_kim    schedule 06.08.2018    source источник
comment
@Л. Алехандро М. Все в порядке (копия холста, холст в файл img). И основная проблема заключается в том, что в этих путях возникает проблема клиппинга. (код ошибки отсутствует) См. выше Образец изображения. #оригинальный граф дополняется моим кодом.   -  person jinsu_kim    schedule 07.08.2018
comment
сам ответ: у меня слишком старая библиотека img tcl. Когда я обновляю и запускаю программу, проблем нет. Спасибо тоже прочитал.   -  person jinsu_kim    schedule 15.11.2018


Ответы (1)


Если вы хотите сохранить свой холст в изображение, вам может помочь этот пример:

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

(Примечание: строка обновления отсутствует в оригинале)

Предоставлено: Майк Гриффитс из tcl wiki

Салудос,

person L. Alejandro M.    schedule 06.08.2018