kopia lustrzana https://github.com/dnet/pySSTV
added SSTV module init and buttons to GIMP plugin
rodzic
64f95592b7
commit
0347aa7a3b
|
@ -7,23 +7,46 @@
|
|||
from gimpfu import register, main, pdb, PF_BOOL, PF_STRING, PF_RADIO
|
||||
from tempfile import mkstemp
|
||||
from PIL import Image, ImageTk
|
||||
from Tkinter import Tk, Label
|
||||
from Tkinter import Tk, Label, Button
|
||||
from pysstv import __main__ as pysstv_main
|
||||
import os
|
||||
|
||||
MODULE_MAP = pysstv_main.build_module_map()
|
||||
|
||||
class Transmitter(object):
|
||||
def __init__(self, sstv, root):
|
||||
self.sstv = sstv
|
||||
self.root = root
|
||||
|
||||
def start_tx(self, e):
|
||||
pdb.gimp_message("TX!") # TODO
|
||||
|
||||
def close(self, e):
|
||||
self.root.destroy()
|
||||
|
||||
def transmit_current_image(image, drawable, mode, vox, fskid):
|
||||
sstv = MODULE_MAP[mode]
|
||||
handle, png_fn = mkstemp(suffix='.png', prefix='pysstv-gimp-')
|
||||
os.fdopen(handle).close()
|
||||
try:
|
||||
pdb.gimp_file_save(image, drawable, png_fn, png_fn)
|
||||
pil_img = Image.open(png_fn)
|
||||
root = Tk()
|
||||
s = sstv(pil_img, 44100, 16)
|
||||
s.vox_enabled = vox
|
||||
if fskid:
|
||||
s.add_fskid_text(fskid)
|
||||
tm = Transmitter(s, root)
|
||||
tk_img = ImageTk.PhotoImage(pil_img)
|
||||
img_widget = Label(root, image=tk_img)
|
||||
img_widget.image = tk_img
|
||||
img_widget.pack()
|
||||
start_btn = Button(root, text="TX")
|
||||
start_btn.bind('<Button-1>', tm.start_tx)
|
||||
start_btn.pack()
|
||||
close_btn = Button(root, text="Close")
|
||||
close_btn.bind('<Button-1>', tm.close)
|
||||
close_btn.pack()
|
||||
root.mainloop()
|
||||
finally:
|
||||
os.remove(png_fn)
|
||||
|
|
Ładowanie…
Reference in New Issue