| __ __ ____ ____ ____ __ __ _ __ __ |
| / \\/ \/ _ \/ _ \/ _ \/ \ \/ \___/_ / _\ |
| \ / __/ _ \ __/ / / (_/ /__ |
| \__\__/\_____/_____/__/ \__//_/\_____/__/___/ |
| |
| |
| Description: |
| ============ |
| |
| WebP Mux: library to create a WebP container object for features like |
| color profile, XMP metadata, animation & tiling. A reference command line |
| tool 'webpmux' and WebP container specification 'doc/webp-container-spec.txt' |
| are also provided in this package. |
| |
| WebP Mux tool: |
| ============== |
| |
| The examples/ directory contains a tool (webpmux) for manipulating WebP |
| files. The webpmux tool can be used to create a WebP container file and to |
| extract or strip relevant data from the container file. |
| |
| A list of options is available using the -help command line flag: |
| |
| > webpmux -help |
| Usage: webpmux -get GET_OPTIONS INPUT -o OUTPUT |
| webpmux -set SET_OPTIONS INPUT -o OUTPUT |
| webpmux -strip STRIP_OPTIONS INPUT -o OUTPUT |
| webpmux -tile TILE_OPTIONS [-tile...] -o OUTPUT |
| webpmux -frame FRAME_OPTIONS [-frame...] -loop LOOP_COUNT -o OUTPUT |
| webpmux -info INPUT |
| webpmux [-h|-help] |
| |
| GET_OPTIONS: |
| Extract relevant data. |
| icc Get ICCP Color profile. |
| xmp Get XMP metadata. |
| tile n Get nth tile. |
| frame n Get nth frame. |
| |
| SET_OPTIONS: |
| Set color profile/metadata. |
| icc Set ICC Color profile. |
| xmp Set XMP metadata. |
| |
| STRIP_OPTIONS: |
| Strip color profile/metadata. |
| icc Strip ICCP color profile. |
| xmp Strip XMP metadata. |
| |
| TILE_OPTIONS(i): |
| Create tiled image. |
| file_i +xi+yi |
| where: 'file_i' is the i'th tile (webp format), |
| 'xi','yi' specify the image offset for this tile. |
| |
| FRAME_OPTIONS(i): |
| Create animation. |
| file_i +xi+yi+di |
| where: 'file_i' is the i'th animation frame (webp format), |
| 'xi','yi' specify the image offset for this frame. |
| 'di' is the pause duration before next frame. |
| |
| INPUT & OUTPUT are in webp format. |
| |
| WebP Mux API: |
| ============== |
| The WebP Mux API contains methods for adding data to and reading data from |
| WebPMux (a WebP container object). This API currently supports XMP metadata, |
| color profile, animation & tiling. Other features will be added in subsequent |
| releases. |
| |
| Example#1 (pseudo code): Creating a WebPMux object with image data, color |
| profile & XMP metadata. |
| |
| int copy_data = 0; |
| WebPMux* mux = WebPMuxNew(); |
| // ... (Prepare image data). |
| WebPMuxSetImage(mux, &image, copy_data); |
| // ... (Prepare ICCP color profile data). |
| WebPMuxSetColorProfile(mux, &icc_profile, copy_data); |
| // ... (Prepare XMP metadata). |
| WebPMuxSetMetadata(mux, &xmp, copy_data); |
| // Get data from mux in WebP RIFF format. |
| WebPMuxAssemble(mux, &output_data); |
| WebPMuxDelete(mux); |
| // ... (Consume output_data; e.g. write output_data.bytes_ to file). |
| WebPDataClear(&output_data); |
| |
| |
| Example#2 (pseudo code): Get image & color profile data from a WebP file. |
| |
| int copy_data = 0; |
| // ... (Read data from file). |
| WebPMux* mux = WebPMuxCreate(&data, copy_data); |
| WebPMuxGetImage(mux, &image); |
| // ... (Consume image; e.g. call WebPDecode() to decode the data). |
| WebPMuxGetColorProfile(mux, &icc_profile); |
| // ... (Consume icc_profile). |
| WebPMuxDelete(mux); |
| free(data); |
| |
| |
| For detailed Mux API reference, please refer to the header file (src/webp/mux.h) |
| |
| Bugs: |
| ===== |
| |
| Please report all bugs to our issue tracker: |
| http://code.google.com/p/webp/issues |
| Patches welcome! See this page to get started: |
| http://www.webmproject.org/code/contribute/submitting-patches/ |
| |
| Discuss: |
| ======== |
| |
| Email: webp-discuss@webmproject.org |
| Web: http://groups.google.com/a/webmproject.org/group/webp-discuss |