Как преобразовать GIF в текст, для встроенного доступа из сценария ТК?

Я видел следующий код в известной утилите tkdiff:

image create photo rediffImage -format gif -data {
R0lGODdhFAAUAPf/AAAAAIAAAACAAICAAAAAgIAAgACAgMDAwMDcwKbK8P/w1P/isf/Ujv/G
......
}

У меня есть изображение GIF для включения в мой сценарий ТК. Как я могу преобразовать его в данные, подобные этим, чтобы мне не пришлось вызывать отдельный файл GIF?

1 ответ

Решение

Это данные base64. Tcl 8.6 включает команду для выполнения преобразования.

# Read the data in *as binary data*
set f [open yourfile.gif b]
set data [read $f]
close $f

# Do the encoding
set encodedData [binary encode base64 $data]

# Print the encoded version out; it's just plain ASCII text now
puts $encodedData

Обратите внимание, что вы можете добавить любое свободное пространство для данных base64; остается в силе. Это означает, что вы можете разделить и сделать отступы по своему усмотрению.

Другие вопросы по тегам