Esempio n. 1
0
def extract_drawable_images(data_pa, path_app, log_level=0):
    """Extract drawable images for each (app, img, layout) tuple.

    :param data_pa:
        List, each row contains (app, img, layout, permissions) tuple.
    :param path_app:
        String, the path of the decoded Apps.
    :param log_level:
        Int, 0 to 2, silent, or normal (process bar), or verbose mode.

    :return:
        List, compressed images.
    """
    results = []
    log_helper = ProcessPrinter(len(data_pa) / 20, log_level)
    for app_name, wid_name, img_name, layout, _ in data_pa:
        result, result_path, result_traces = extract_drawable_image(
            app_name, img_name, path_app)
        results.append(result)
        log_helper.update('[image]', app_name, wid_name, img_name, layout, ':',
                          (result[0],
                           result[1]) if result is not None else result)
    log_helper.finish()

    return results
Esempio n. 2
0
def extract_layout_texts(data_pa, path_app, search_range, log_level=0):
    results = []
    log_helper = ProcessPrinter(len(data_pa) / 20, log_level)
    for app_name, img_name, layout, _ in data_pa:
        result = handle_layout_text(app_name, img_name, layout, path_app, search_range)
        results.append(result)
        log_helper.update('[layout]', app_name, img_name, layout, ':', result)
    log_helper.finish()

    return results
Esempio n. 3
0
def extract_resource_texts(data_pa, log_level=0):
    results = []
    log_helper = ProcessPrinter(len(data_pa) / 20, log_level)
    for app_name, img_name, layout, _ in data_pa:
        result = handle_resource_text(img_name)
        results.append(result)
        log_helper.update('[res]', app_name, img_name, layout, ':', result)
    log_helper.finish()

    return results
Esempio n. 4
0
def extract_embedded_texts(data_pa, drawable_images, app2lang, east_model,
                           ocr_size, ocr_padding, enable_cache=True, log_level=0):
    results = []
    log_helper = ProcessPrinter(len(data_pa) / 20, log_level)
    for i in range(len(data_pa)):
        app_name, img_name, layout, _ = data_pa[i]
        result = extract_embedded_text(app_name, img_name, drawable_images[i], east_model,
                                       app2lang[app_name], 'english',
                                       ocr_size, ocr_padding, enable_cache)
        results.append(result)
        log_helper.update('[embedded]', app_name, img_name, layout, ':', result)
    log_helper.finish()

    return results
Esempio n. 5
0
def translate_texts(data_pa, texts, enable_cache=True, log_level=0):
    from translate_text import translate_any_to_english
    assert len(data_pa) == len(texts)

    results = []
    log_helper = ProcessPrinter(sum([len(t) for t in texts]) / 20, log_level)
    for i in range(len(data_pa)):
        app_name, img_name, layout, _ = data_pa[i]
        translated = []
        for t in texts[i]:
            r = translate_any_to_english(t, enable_cache)
            translated.append(r)
            log_helper.update('[translate]', app_name, img_name, layout, ':', t, '->', r)
        results.append(translated)
    log_helper.finish()

    return results