PDF de programación - Documentación : Gestor de Imágenes. (GTK2.0, GDK2Pixbuf, FreePascal & MySQL)

Imágen de pdf Documentación : Gestor de Imágenes. (GTK2.0, GDK2Pixbuf, FreePascal & MySQL)

Documentación : Gestor de Imágenes. (GTK2.0, GDK2Pixbuf, FreePascal & MySQL)gráfica de visualizaciones

Publicado el 5 de Febrero del 2017
1.032 visualizaciones desde el 5 de Febrero del 2017
1,4 MB
24 paginas
Creado hace 16a (19/02/2008)
Docu

ument

tación 

: Gest

tor de 

Imáge

enes. 

(G
GTK2.

0, GDK

K2Pixb

buf, Fre

eePasc

cal & M

MySQL
L) 

Jose A

Alberto

o Benít

tez And

drades


 

 

   

           

    

   

  

         

      

 

Meto

odología y Te

ecnología de

e la Program

mación 

2
º Ingeniería 

Informática

a, DNI: 71454

4586A 

infja

ab02@estud

diantes.unile

eon.es 

 

Gestor de Imágenes                                                                  Metodología y Tecnología de la Programación 

 

PRÓLOGO. 

Índice 

1. ARQUITECTURA DE LA APLICACIÓN. 

 

 

 

 

 

 

 

 

 

 

 

 

1.1. DISEÑO DE LA BASE DE DATOS. 

 

 

 

 

1.1.1. Tabla Imagen. 

1.1.2. Tabla Tematica. 

1.1.3. Tabla SubTematica. 

1.1.4. Diagrama Entidad‐Relación. 

1.2. CODIFICACIÓN. 

 

 

 

 

 

 

1.2.1. errorsInOut.pas 

1.2.2. tad_cola.pas 

1.2.3. miMysql.pas 

1.2.4. GestionImagenes.pas 

1.2.5. intGes.pas 

1.2.6. tratadoXML.pas 

1.2.7. JABAGI.pas 

1.3. DICCIONARIO DE DATOS. 

 

 

 

1.3.1. Unidad tad_cola.pas 

1.3.2. Unidad miMysql.pas 

1.3.3. Unidad GestionImagenes.pas 

2. FUNCIONAMIENTO DEL PROGRAMA. 

 

 

 

 

 

Jose Alberto Benítez Andrades [71454586A] 

[email protected] 

Página 2 

Gestor de Imágenes                                                                  Metodología y Tecnología de la Programación 

 
PRÓLOGO 

A  la  hora  de  realizar  aplicaciones,  un  programador  debe  tener  en  cuenta 
muchos  aspectos,  tales  como  los  tipos  de  datos  a  utilizar  y  las  operaciones  para 
trabajar con ellos, es decir, realizar un diseño “interno” del programa. Todo esto no le 
interesa  al  usuario  final,  que  únicamente  pedirá  como  requisito  que  aquello  que  le 
ofrecemos funcione correctamente, y lo haga de la mejor manera posible y además, 
cuanto más sencillo mucho mejor. 

 
 
Estas  razones  hacen  necesaria  la  implementación  de  una  interfaz  agradable 
para el usuario, que le permita realizar las tareas que solicita sin demasiado esfuerzo 
(tras un simple “clic” puede haber cientos o incluso miles de líneas de código...). 

La interfaz de nuestro programa es la carta de presentación del mismo, y como 
 
tal debe ser capaz de llamar la atención. Es muy posible que la primera impresión del 
usuario ante dos programas que realicen la misma tarea, haga que se incline hacia una 
aplicación con interfaz gráfica frente a otra en modo texto, a pesar de no ser la que 
funciona mejor.  
 

1. ARQUITECTURA DE LA APLICACIÓN. 

 
La elaboración de una práctica mediana conlleva una buena fase de análisis del 
problema y diseño del programa, ya que si no seguimos bien las especificaciones del 
programa, podemos crear una aplicación que no hace lo que el cliente nos pide.  

 
Otro problema muy frecuente, es la mala elección de unos tipos de datos y una 
mala codificación del programa, ya que eso conllevaría a un programa ineficiencia, ya 
sea  porque  posee  muchas  líneas  de  código  para  hacer  algo  sencillo,  o  simplemente 
porque a la hora de la ejecución, el programa funciona muy lentamente y con errores. 

En este apartado voy a explicar el diseño de la base de datos que he utilizado 
 
para hacer el programa, y también desglosaré el funcionamiento de las unidades y del 
programa principal. 

 

1.1. DISEÑO DE LA BASE DE DATOS. 

Según las especificaciones del programa, debemos crear una base de datos en 

 
la que podamos almacenar imágenes que contengan la siguiente información: 

Identificador textual de la imagen (nombre descriptivo),  


• descripción textual abierta de la imagen,  
• nombre del fichero asociado,  


Jose Alberto Benítez Andrades [71454586A] 

tipo de fichero,  

[email protected] 

Página 3 

Gestor de Imágenes                                                                  Metodología y Tecnología de la Programación 

 

tamaño en bytes,  


• anchura y altura de la imagen,  



temática principal de la imagen,  
temática padre de la temática principal, (la clasificación por temáticas es 
jerárquica, considerándose imagen como el término que define la raiz de la 
jerarquía)  

• un conjunto de etiquetas libres (texto) asociadas a la imagen.  

Para ello he creado 3 tablas, imagen, tematica y subtematica. 

 

1.1.1. Tabla Imagen. 

 
La  tabla  principal,  en  la  que  almacenaremos  las  imágenes  en  sí  con  toda  su 
información,  es  la  tabla  que  yo  he  denominado  imagen.  Contiene  los  siguientes 
campos: 

Id: Identificador de Imagen único para cada imagen añadida, es la clave 
primaria de nuestra tabla imagen.  

‐ nombre_imagen: el nombre del fichero imagen. 
‐ descripcion: descripción de la imagen.  


almacenará 

se 

 

de 

type 

el  mime 

tipo: 
(image/jpeg,image/png...). 
tematica: se almacena la id de la imagen, con ella podremos obtener el 
nombre de la temática y más información desde la tabla Tematica.  
subtematica:  al  igual  que  tematica,  almacena  una  id  con  la  cual 
podremos  obtener  el  nombre  de  la  subtematica  desde  la  tabla 
Subtematica. 

imagen 

la 







‐ anchura: anchura de la imagen en píxeles. 
‐ altura: altura de la imagen en píxeles. 

‐ etiquetas: etiquetas que pertenecen a la imagen. 


tamano: tamaño de la imagen en bytes. 

Identificador: es el id único de cada imagen que nos hará falta para la 
gestión de las imágenes. 
 

1.1.2. Tabla Tematica. 

En esta tabla se almacenan todas las temáticas que puede poseer una imagen, 
y  además  se  almacenará  si  la  temática  tiene  temáticas  hijas,  o  no.  Los  campos  que 
posee son los siguientes: 



id:  almacena  la  id  única  de  cada  temática,  es  la  clave  primaria  de  la 
tabla. 

‐ nombre: nombre de la temática. 
‐ espadre:  es  un  booleano  que  almacena  TRUE  si  la  temática  tiene 

temáticas hijas, o FALSE si por el contrario, no posee temáticas hijas. 
 

Jose Alberto Benítez Andrades [71454586A] 

[email protected] 

Página 4 

Gesto
or de Imágene

es                     

                        

                     M

Metodología y 

Tecnología d

de la Program
mación 

 

 
 
3. Tabla S
SubTemat

1.1.3

ica. 

En esta t
pos y son lo

tabla se alm
os siguiente

s: 

camp

macenarán la

as relacione

es padre‐hij

jo de las tem

máticas, tie

ne 3 





id
d_padre: se
e
el campo id 
id
d_hijo: cont
e
el campo id 
‐ n
nombre_hijo
4. Diagram
ma Entida

e almacena 
de la tabla 
tiene la id d
de la tabla 
o: almacena
ad‐Relació

la id de la t
tematica.
de la temáti
tematica.
a el nombre
ón. 

1.1.4

e de la temá

ática hija. 

temática pa

adre, está re

elacionada c

con 

ica hija, está

á también r

relacionada

 con 

 
El Diagra

ama Entidad

d‐Relación d

de la base d

de datos ant

teriormente

e explicada 

sería 

el sig

guiente : 

 

1.2.

. CODIF

FICACIÓN
N. 

 

 

 
Una  vez
dar el prob
s de cómo h
rama está f

abor
ideas
prog

z  pensada 
blema, com
hacer funcio
formado po

la  distribuc
ienza la eta
onar el prog
or 6 unidade

ción  de  la 
apa de codi
grama, a có
es y el progr

base  de  d
ficación, en
ódigo. Desp
rama princi

datos,  y  pe
n la cual, pa
ués de hace
pal: 

nsado  en  c
asamos nue
er la práctic

cómo 
estras 
ca, mi 

Unid

ades: 








errorsInO

tad_cola
miMysql

tratadoX
GestionI

intGes.p

Jose A
Alberto Benít

Out.pas 
a.pas 
l.pas 
XML.pas 
magenes.p
as 

tez Andrades 

as 

[71454586A
A]

Infjab

b02@estudian

ntes.unileon.e




ágina 5 

Gestor de Imágenes                                                                  Metodología y Tecnología de la Programación 

 
Programa principal: 



JABAGI.pas 

1.2.1. errorsInOut.pas 

Esta unidad es la encargada de gestionar los errores a la hora de crear, abrir o 

 
leer ficheros. Contiene un único procedimiento: 

PROCEDURE calcError(error:integer); 

Recibe  como  parámetro  un  número  entero  que  representa  el  tipo  de  error,  y 
dependiendo  de  ese  número  muestra  un  mensaje  u  otro.  Por  ejemplo  en  nuestro 
tratadoXML.pas al abrir el descriptor.xml tenemos el siguiente código: 

{$I‐}rewrite(descriptor);{$I+} 

 

errorF := ioresult; 

if (errorF<>0) then  

Begin  

 

calcError(errorF); 

End 

 

 

 

 

errorF es una variable de tipo entera, en la cual se almacena el ioresult, que se obtiene 
con la creación de un fichero en este caso. Cuando errorF es distinto de 0, significa que 
hay  un  error,  éste  se  envía  al  procedimiento  calcError  y  muestra  por  pantalla  un 
mensaje.  Por  ejemplo  si  no  tenemos  permisos  para  crear  el  fichero  errorF  sería  5  y 
calcError ejecutaría en su case el siguiente caso: 

 

 

 

5 : writeln('Acceso denegado'); 

1.2.2. tad_cola.pas 

 

Esta unidad está formada por 4 procedimientos y 2 funciones: 

PROCEDURE ColaVacia(var C:tCola); 

‐ Este procedimiento se encarga de crear una cola vacía. 

FUNCTION EsVacia(C:tCola):boolean; 

‐ Esta función comprueba si la cola está vacía o contiene elementos. 

 

Jose Alberto Benítez Andrades [71454586A] 

[email protected] 

Página 6 

Gestor de Imágenes                                                                  Metodología y Tecnología de la Programación 

 
FUNCTION Primero(C:tCola):longint; 

‐ Con esta función obtenemos el primer elemento de la cola. 

PROCEDURE Poner(var C:tCola; tematica:longint); 

‐ Con este procedimiento insertamos elementos en la cola. 

PROCEDURE Quitar(var C:tCola; var tematica:longint); 

‐ Este procedimiento se utiliza para eliminar elementos de la cola. 

PROCEDURE Suprimir(var C:tCola); 

‐ Este procedimiento es con el que borramos realmente el elemento que 
se le pasa desde el procedimiento anterior Quitar y actualizamos la cola. 

Del uso de esta unidad en nuestro programa hablaremos en el punto 1.2.6. JABAGI.pas 

1.2.3. miMysql.pas 

 
Esta unidad contiene todas las rutinas que vamos a necesitar relacionadas con 
la base de datos MySQL (co
  • Links de descarga
http://lwp-l.com/pdf2290

Comentarios de: Documentación : Gestor de Imágenes. (GTK2.0, GDK2Pixbuf, FreePascal & MySQL) (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad