📄 libopen.txt
字号:
Datove struktury:
=================
Pixel:
typedef struct
{
uint8 r,g,b;
} TPixel, *PPixel;
Pixel se zklada z barevnych komponent RGB (8 bitu na slozku).
Framebuffer:
typedef struct
{
PPixel buff;
uint32 w,h;
} TFrameBuff, *PFrameBuff;
Framebuffer je vlastni obrazek reprezentovani jako jednorozmerne pole pixelu
o rozmerech w (sirka) a h (vyska). Mapovaci funkce pole je y*w+x, kde x a y jsou
souradnice v obrazku.
Metody komprese:
typedef enum
{
DCT = 0,
DWT = 1,
} openMethod;
Vyctovy datovy typ urcujici metodu komprese. DCT znamena diskretni kosinova
transforamce, DWT znamena diskretni vlnkova (waveletova) transformace.
Funkce:
=======
Komprese:
int openCompress(FILE *descriptor, PFrameBuff framebuffer,
openMethod method, int quality);
Provede kompresi dle zadane metody.
Parametry:
descriptor - otevreny soubor (w), kam zapsat zkomprimovany obrazek
framebuffer - obrazek v FB ke zkomprimovani (nemeni)
method - metoda komprese DCT/DWT
quality - kvalita (stupen komprese) v % (1..100)
Vraci:
!=0 pri chybe.
Dekomprese:
int openDecompress(FILE *descriptor, PFrameBuff *framebuffer);
Provede dekompresi obrazku do FB (ktery vytvori).
Parametry:
descriptor - soubor otevreny (r) se zkomprimovanym obrazkem
framebuffer - kam obrazek ulozit (alokuje sam)
Vraci:
!=0 pri chybe
Hlavickove soubory:
===================
open.h
Veskere rozhrani je deklarovano v tomto souboru.
Pouziti:
========
Prelozte soubor open.c a slinkujte s vasi aplikace. Pri kompilaci a linkovani
budete potrebovat knihovnu libbzip2. Priklad prekladu je uveden v Makefile
v adresari src.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -