blurhash-c-wasm/blurhash/decode.h
Fries f7bbb92d85 change up api, and bump down version
the api now requires you to call an async function initWasm to make the
functions work instead of using top level await. i also optimized the
wasm module to have O3 and fast-math (which the original blurhash
makefile had and the results do seem to be the same with the javascript
blurhash).

I also gave the wasm instance functions inside typescript types and i
fixed a bug where i didnt free the pointers in order so if you called
decode too many times, you will run out of memory.
2023-08-14 19:24:20 -07:00

34 lines
1.1 KiB
C

#ifndef __BLURHASH_DECODE_H__
#define __BLURHASH_DECODE_H__
#include <math.h>
#include <stdbool.h>
#include <stdint.h>
#include <stdlib.h>
#include <string.h>
/*
decodeToArray : Decodes the blurhash and copies the pixels to pixelArray,
This method is suggested if you use an external memory allocator for pixelArray.
pixelArray should be of size : width * height * nChannels
Parameters :
blurhash : A string representing the blurhash to be decoded.
width : Width of the resulting image
height : Height of the resulting image
punch : The factor to improve the contrast, default = 1
nChannels : Number of channels in the resulting image array, 3 = RGB, 4 = RGBA
pixelArray : Pointer to memory region where pixels needs to be copied.
Returns : int, -1 if error 0 if successful
*/
int decodeToArray(uint8_t* blurhash, int width, int height, int punch, int nChannels, uint8_t* pixelArray);
/*
isValidBlurhash : Checks if the Blurhash is valid or not.
Parameters :
blurhash : A string representing the blurhash
Returns : bool (true if it is a valid blurhash, else false)
*/
bool isValidBlurhash(uint8_t* blurhash);
#endif