Metadata-Version: 2.1
Name: roboflex.util.png
Version: 0.1.2
Summary: Roboflex util png Library
Home-page: https://github.com/flexrobotics/roboflex_util_png
Author: Colin Prepscius
Author-email: colinprepscius@gmail.com
License: MIT
Keywords: png,robotics,middleware,flexbuffers,python,c++,c++20
Platform: UNKNOWN
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: Software Development :: Embedded Systems
Classifier: Framework :: Robot Framework
Classifier: Framework :: Robot Framework :: Library
Classifier: Framework :: Robot Framework :: Tool
Classifier: Programming Language :: C++
Classifier: Programming Language :: Python :: 3
Requires-Python: >=3.6
Description-Content-Type: text/markdown
License-File: LICENSE

# roboflex.util.png

Roboflex support for png compression to file and memory, and png decompression from memory.

Useful for compressing images over slow transports (wifi, etc).

## System Dependencies

    None! We build lodepng from source...

## pip install

    pip install roboflex.util.png

## Import

    import roboflex.util.png as rup

## Nodes

There are two complementary nodes: `PNGCompressor`, which can turn rgb tensors into pngs in memory, and `PNGDecompressor`, which does the opposite. Useful either for writing rgb tensors to files, or compressing them.

    # all parameters are optional
    c = rup.PNGCompressor(

        # in the incoming message, where to find the rgb tensor
        image_key = "rgb",

        # in the outgoing message, where to place the jpeg data
        output_key = "png", 

        # If this is provided, will ALSO write jpeg files with this 
        # prefix, with a variation of the date and time as the suffix.
        filename_prefix = "",

        # name of the node
        name = "PNGCompressor",

        # prints internal info
        debug = False,
    )

... and ...

    c = rup.PNGDecompressor(

        # in the incoming message, where to find the png data as a blob
        input_key = "png",

        # in the outgoing message, where to place the rgb data as a tensor
        output_key = "rgb", 

        # name of the node
        name = "PNGDecompressor",

        # prints internal info
        debug = False,
    )


