-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathArchivoImagenPNG.h
61 lines (48 loc) · 2.05 KB
/
ArchivoImagenPNG.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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#ifndef ARCHIVOIMAGENPNG_H_INCLUDED
#define ARCHIVOIMAGENPNG_H_INCLUDED
#include "ArchivoImagen.h"
/**
* Clase que representa un archivo de imagen en formato PNG. Encapsula toda la funcionalidad
* clave para su manejo
*/
class ArchivoImagenPNG : public ArchivoImagen{
private:
/**
* Calcula y devuelve el offset inicial.
*/
unsigned int calcOffsetInicial();
public:
/**
* Constructor de Archivo de Imagen PNG
* @param id Es el identificador con el que se almacenara en los archivos de registros
* @param idDirectorio Es el id del directorio al cual pertenece este archivo
* @param nombre es el nombre del archivo (incluyendo extension)
*/
ArchivoImagenPNG(const unsigned int id, unsigned int idDirectorio, const string nombre, const unsigned int tamano):
ArchivoImagen(id, idDirectorio, nombre, tamano){
if (tamano == 0)
this->tamano = this->calcularTamano(nombre);
}
~ArchivoImagenPNG(){ //destructor
}
/**
* Reduce la calidad del PNG y rellena con bytes quedando del mismo tamaño.
* Setea en espacioDisponible el espacio total q se puede utilizar en dicha imagen e inicialmente, bytesLibres con el mismo valor
*/
void preProcesar();
/**
* @return bool True si es paosible, false en caso contrario
* @param cadena Es la cadena de datos a ocultar en el portador
* @param offset La cantidad de bytes a leer hasta encontrar el primero modificable
*/
bool guardarDatos (string cadena, const unsigned int offset);
/**
* Recupera la cantidad de bitsInformacion especificada. Completa con CEROS si no es multiplo de
* BITS_BYTE (8)
* @return string Los datos recuperados. Devuelve un string VACIO si no pudo hacerlo
* @param offset La cantidad de bytes a leer hasta encontrar el primero que contiene los datos
* @param bitsInformacion Es la cantidad de bits a leer a partir del offset para conformar los datos
*/
string recuperarDatos (const unsigned int offset, const unsigned int bitsInformacion );
};
#endif // ARCHIVOIMAGENPNG_H_INCLUDED