コード例 #1
0
def encode(input,
           output_encoding='utf-8',
           errors='strict',
           input_encoding='utf-8'):
    """Encode any string. Returns an encoded 'str' otherwise the input."""
    if isinstance(input, str):
        if input_encoding == output_encoding:
            return input
        elif input_encoding == Py.Enc.default:
            try:
                return enc(unicode(input, Py.Enc.default), output_encoding,
                           errors)
            except:
                return enc(input, output_encoding, errors)
        else:
            try:
                return enc(unicode(dec(input, input_encoding), Py.Enc.default),
                           output_encoding, errors)
            except:
                return enc(dec(input, input_encoding), output_encoding, errors)
    elif isinstance(input, unicode):
        if input_encoding == Py.Enc.default:
            try:
                return enc(input, output_encoding, errors)
            except:
                return enc(enc(input, Py.Enc.default, errors), output_encoding,
                           errors)
        else:
            return encode(enc(input, 'latin-1', errors), output_encoding,
                          errors, input_encoding)
    else:
        return input
コード例 #2
0
def decode(input, encoding='utf-8', errors='strict', detect='utf-8'):
    """Decode any string. Returns a decoded 'unicode' otherwise the input."""
    if isinstance(input, str):
        try:
            r = dec(input, encoding, errors)
        except:
            r = dec(input, det(input)['encoding'], errors)

        if isinstance(r, str):
            return decode(r, detect, errors, detect)
        else:
            return r.replace(u'\ufeff', '', 1)
    elif isinstance(input, unicode):
        if encoding == Py.Enc.default:
            return input
        else:
            return decode(enc(input, 'latin-1'), encoding, errors, detect)
    else:
        return input
コード例 #3
0
def encode(input,
           output_encoding='utf-8',
           errors='strict',
           input_encoding='utf-8'):
    """Encode any string. Returns encoded 'bytes' otherwise the input."""
    if isinstance(input, bytes):
        if input_encoding == output_encoding:
            return input
        elif input_encoding == Py.Enc.default:
            try:
                return enc(str(input, Py.Enc.default), output_encoding, errors)
            except UnicodeEncodeError as e:
                raise e
            except:
                return enc(input, output_encoding, errors)
        else:
            try:
                return enc(str(dec(input, input_encoding), Py.Enc.default),
                           output_encoding, errors)
            except UnicodeEncodeError as e:
                raise e
            except:
                return enc(dec(input, input_encoding), output_encoding, errors)

    elif isinstance(input, str):
        if input_encoding == Py.Enc.default:
            try:
                return enc(input, output_encoding, errors)
            except UnicodeEncodeError as e:
                raise e
            except:
                return enc(bytes(input, Py.Enc.default), output_encoding,
                           errors)
        else:
            return encode(enc(input, 'latin-1', errors), output_encoding,
                          errors, input_encoding)
    else:
        return input
コード例 #4
0
import numpy as np
from codecs import encode as enc
import cv2

outEncoded = lambda f, s: f.write(enc(s, "utf8"))

grayImage = cv2.cvtColor(cv2.imread( "./font/Simple_Icon.png").astype(np.uint8), \
                                    cv2.COLOR_BGR2GRAY)

print(grayImage.shape)

f1 = open("./hardware/Splash_Screen.h", "wb")
outEncoded(f1, "const uint8_t Simple_Icon_128x60px[] PROGMEM = {\n")

count = 0
for i in range(60):
    for j in range(0, 128, 8):
        r = 0
        for k in range(8):
            r *= 2
            if (grayImage[i, j + k] > 100): r += 1
        outEncoded(f1, "0x{:02x},".format(r))
        count += 1
        if count % 20 == 0:
            outEncoded(f1, "\n")
if count % 20 == 0: f1.seek(-2, 2)
else: f1.seek(-1, 2)
outEncoded(f1, "};\n")
f1.close()