libopen.txt

来自「从sourceforge下的图像压缩源码」· 文本 代码 · 共 72 行

TXT
72
字号
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 + =
减小字号Ctrl + -
显示快捷键?