Use Cases
Few examples of situation are included, where results of the project should provide some new possibilities or advantages.
Browseable Binary Content
Case here is to provide more flexible picture format as an alternative to GIF, PNG, JPEG or WebP.
Let's have RGB encoded bitmap picture stored in XBUP format with header defining picture dimensions and used compression and pixel format followed by binary blob of actual data.
Basic editor should provide following functions:
- Allow to edit picture data in its native form using hexadecimal editor (not very useful, but still available)
- Transform compressed data to raw data and allow to edit it in hexadecimal editor
- Transform raw data to matrix of pixels and allow to edit it as a table
- Allow to edit each pixel using color selection dialog or editing RGB values directly
- Provide documentation for each form of data and each transformation and meaning of every value
Data Tables
Case here is to provide more flexible data tables format as an alternative to CSV or XML table formats.
Let's have table data file. In header row structure is defined as a sequence of columns optionally with names, where each column has particular type with corresponding representation in bytes. Header is then followed by raw data, optionally compressed.
Basic editor should provide following functions:
- Allow to edit compressed or raw data or raw data after decompression using hexadecimal editor
- Transform data to table and allow to edit it as a table
- Allow to change and or convert column type
- Allow to add/remove/copy columns or rows
- For each type allow to edit it in proper textual/graphical form (for example date format with calendar dialog or internationalized string)
- Allow to edit data as a textual data using some markup syntax
Flexible Modular Applications
Case here is to provide more flexible software framework as an alternative to DirectShow, GStreamer or system libraries.
Let's have simple bitmap editor capable editing RAW RGB bitmap data supporting XBUP framework.
Framework should provide following functions:
- Allow application to open various bitmap formats (PNG, JPEG…) as supported by framework by decompressing pictures to RAW RGB
- Allow application to save in various bitmap formats as supported by framework by compressing RAW RGB to given format
- Preserve additional information (for example EXIF data) if appropriate
- Provide additional methods to show/edit additional information if available
- Provide additional export or import methods from different formats if available