Make the sample script a little nicer

This commit is contained in:
Kovid Goyal 2021-06-16 18:51:21 +05:30
parent 9d3a2cc219
commit ee77144e2b
No known key found for this signature in database
GPG Key ID: 06BC317B515ACE7C

View File

@ -101,7 +101,8 @@ features of the graphics protocol:
import sys
from base64 import standard_b64encode
def serialize_gr_command(cmd, payload=None):
def serialize_gr_command(**cmd):
payload = cmd.pop('payload', None)
cmd = ','.join('{}={}'.format(k, v) for k, v in cmd.items())
ans = []
w = ans.append
@ -112,18 +113,17 @@ features of the graphics protocol:
w(b'\033\\')
return b''.join(ans)
def write_chunked(cmd, data):
data = standard_b64encode(data)
def write_chunked(**cmd):
data = standard_b64encode(cmd.pop('data'))
while data:
chunk, data = data[:4096], data[4096:]
m = 1 if data else 0
cmd['m'] = m
sys.stdout.buffer.write(serialize_gr_command(cmd, chunk))
sys.stdout.buffer.write(serialize_gr_command(payload=chunk, m=m, **cmd))
sys.stdout.flush()
cmd.clear()
with open(sys.argv[-1], 'rb') as f:
write_chunked({'a': 'T', 'f': 100}, f.read())
write_chunked(a='T', f=100, data=f.read())
Save this script as :file:`png.py`, then you can use it to display any PNG