-
Notifications
You must be signed in to change notification settings - Fork 0
/
imagem.h
42 lines (36 loc) · 1.97 KB
/
imagem.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
/*============================================================================*/
/* MANIPULA��O DE ARQUIVOS BMP */
/*----------------------------------------------------------------------------*/
/* Autor: Bogdan T. Nassu - [email protected] */
/*============================================================================*/
/** Este arquivo traz declara��es de um tipo e rotinas para manipula��o de
* arquivos bmp. Como temos um prop�sito puramente did�tico, apenas um sub-
* conjunto m�nimo do formato foi implementado. Usamos aqui matrizes alocadas
* dinamicamente e n�meros de ponto flutuante. Esta n�o � a forma mais eficiente
* de se trabalhar com imagens, mas procuramos priorizar a clareza e a
* facilidade de uso. */
/*============================================================================*/
#ifndef __IMAGEM_H
#define __IMAGEM_H
/*============================================================================*/
typedef struct
{
int largura;
int altura;
int n_canais;
unsigned int*** dados; /* Uma matriz de dados por canal. Acessar com 3 �ndices: [canal][y][x]. */
} Imagem;
/*----------------------------------------------------------------------------*/
/* Por simplicidade e compatibilidade, n�s sempre consideramos a leitura e
* escrita de imagens com 3 canais, 24bpp. Todas as convers�es para escala de
* cinza e float s�o feitas internamente. */
Imagem* criaImagem (int largura, int altura, int n_canais);
void destroiImagem (Imagem* img);
Imagem* abreImagem (char* arquivo, int n_canais);
int salvaImagem (Imagem* img, char* arquivo);
Imagem* clonaImagem (Imagem* img);
void copiaConteudo (Imagem* in, Imagem* out);
void redimensionaNN (Imagem* in, Imagem* out);
void redimensionaBilinear (Imagem* in, Imagem* out);
/*============================================================================*/
#endif /* __IMAGEM_H */