# PENDIENTE: # Mostrar imagen tomada por la webcam para poder enfocar lo que se desea fotografiar # Mostrar el nombre de cada imagen visualizada en el album para poder relacionar ambos # cuando se quiere borrar una foto determinada import gst, pygame, sys, os, random from pygame import * categoria = "" def menu(categoria): os.system ("clear") print print " A L B U M F O T O G R A F I C O " print print " por Mauricio Viera" print print " *** M E N U P R I C I P A L ***" print print " 1- Tomar una foto con un nombre determinado" print " 2.- Tomar una foto con nombre asignado automaticamente por el sistema" print " 3.- Ver album de fotos de categoria actual" print " 4.- Ver una foto determinada en la categoria actual" print " 5.- Mostrar listado con todas las fotos" print " 6.- Eliminar una foto de la categoria actual" print " 7.- Crear, ver, modificar o seleccionar categorias" print " 9.- Salir" if categoria == "": print "\n NO HA SELECCIONADO NINGUNA CATEGORIA PARA LAS FOTOS \n\n" else: print "\n Fotografias de ",categoria, "\n\n" opcion = raw_input(" Marque el numero correspondiente a la opcion deseada - ") if opcion == "1" or opcion == "2" or opcion == "3" or opcion == "4" or opcion == "6": if categoria == "": os.system("clear") raw_input ("\n Debe indicar una categoria antes de continuar \n Presione ENTER para continuar") menu(categoria) if opcion == "1" or opcion == "2": fotos(categoria,opcion) elif opcion == "3": album(categoria) elif opcion == "4": print "\n Ingrese el nombre de la foto que desea visualizar. Si no lo conoce introduzca \n cero (0) como nombre de foto para volver al menu. \n Para conocer un nombre de foto utilice la opcion 4 del menu principal. \n Para salir de la foto mostrada utilice la tecla ESCAPE " archivo = raw_input ("\n\n Ingrese nombre ") if archivo == "0": menu(categoria) archivo = categoria + "---" + archivo + ".jpg" archivo_existe = os.path.join(archivo) if not os.path.exists(archivo): raw_input ("\n\n Ha indicado un nombre de foto que no existe. Presione ENTER para continuar. ") menu(categoria) mostrar_foto(archivo) while 1: pygame.event.pump() keyinput = pygame.key.get_pressed() if keyinput[K_ESCAPE] or pygame.event.peek(QUIT): pygame.quit() menu(categoria) elif opcion == "5": ver("listado_fotos", categoria) # ver.abrir("listado_fotos") menu(categoria) elif opcion == "6": eliminar(categoria) elif opcion == "7": categoria_fotos(categoria) elif opcion == "9": sys.exit() else: menu(categoria) def fotos(categoria, opcion): if opcion == "1": archivo = raw_input(" Indique nombre de la fotografia - ") archivo = categoria + "---" + archivo + ".jpg" elif opcion == "2": numero = random.randint(10000000,99999999) archivo = categoria + "---" + str(numero) + ".jpg" size = width, height = 1200, 900 pipeline = gst.parse_launch('v4l2src ! ffmpegcolorspace ! jpegenc ! filesink location='+archivo) pipeline.set_state(gst.STATE_PLAYING) pygame.init() pipeline.set_state(gst.STATE_NULL) mostrar_foto(archivo) pygame.event.pump() while 1: keyinput = pygame.key.get_pressed() if keyinput[K_ESCAPE] or pygame.event.peek(QUIT): pygame.quit() f=open ('listado_fotos','r') p=f.readlines() f.close() archivo = archivo[:-4] f=open ('listado_fotos','w') for x in range (len(p)-1): if archivo < p[x]: f.write(archivo+'\n') for z in range(x,len(p)-1): f.write(p[z]) f.write("Fin de reporte") f.close() menu(categoria) elif archivo > p[x]: f.write(p[x]) f.write(archivo+'\n') f.write("Fin de reporte") f.close() menu(categoria) def album(categoria): f=open('listado_fotos' , 'r') p=f.readlines() f.close() x=0 accion = "buscar foto" while accion == "buscar foto": if x < len(p): if categoria == p[x][:len(categoria)]: archivo = p[x][:-1]+'.jpg' mostrar_foto(archivo) accion = "esperar" while accion == "esperar": pygame.init() pygame.event.pump() keyinput = pygame.key.get_pressed() if keyinput[K_ESCAPE] or pygame.event.peek(QUIT): pygame.quit() menu(categoria) if keyinput[K_UP]: if x < len(p): x=x+1 accion = "buscar foto" if keyinput[K_DOWN]: x=x-1 if x==-1: x=0 accion = "buscar foto" else: x=x+1 else: pygame.quit() menu(categoria) def mostrar_foto(archivo): size = width, height = 1200, 900 pygame.init() pygame.mouse.set_visible(False) screen= pygame.display.set_mode(size) image = pygame.image.load(archivo) image1 = pygame.transform.rotozoom(image, 0,2) image2 = image1.get_rect() screen.blit(image1,image2) pygame.display.flip() return def eliminar(categoria): archivo = raw_input('\n Indique el nombre de la foto que desea eliminar. Para cancelar introduzca \n cero (0) como nombe y busquelo con la opcion 4 del menu principal \n ') if archivo == "0": menu(categoria) archivo_listado = categoria+'---'+archivo+'\n' archivo_foto = categoria+'---'+archivo+'.jpg' f=open ('listado_fotos','r') p = f.readlines() f.close() f=open ('listado_fotos', 'w') for x in range (len(p)): if p[x] <> archivo_listado: f.write(p[x]) f.close() archivo_eliminar = os.path.join(archivo_foto) if not os.path.exists(archivo_eliminar): raw_input("\n\n El nombre de la foto indicado no existe. Presione ENTER para continuar ") menu(categoria) os.system('rm '+archivo_foto) print " El archivo ",archivo_foto," ha sido borrado. \n Presione ENTER para continuar" raw_input( " ") menu(categoria) def ver(archivo_abrir, categoria): import os f=open(archivo_abrir,'r') p=f.readlines() f.close() cantidad=len(p) z=0 x=0 opcion="" while opcion <> "x" and opcion <> "X": os.system("clear") for x in range (z,z+10): if x0: z=z-10 else: z=0 return def categoria_fotos(categoria): os.system("clear") print print " * * * M E N U * * *" print print " 1.- Retornar al menu principal 4.- Seleccionar una categoria" print " 2.- Eliminar una categoria ya existente 5.- Ver listado con categorias creadas" print " 3.- Crear una nueva categoria" print if categoria == "": print " NO HA SELECCIONADO categoria para las fotos" if categoria <> "": print " Esta trabajando con fotografias de ", categoria opcion = raw_input(" Indique la opcion deseada - ") if opcion == "1": menu(categoria) elif opcion == "2": nombre = raw_input('\n Indique el nombre de la categoria que desea eliminar. \n Utilice cero (0) para cancelar ') if nombre == "0": categoria_fotos(categoria) nombre = nombre + '\n' f=open ('categorias_fotos','r') p = f.readlines() f.close() f=open ('categorias_fotos','w') for x in range (len(p)): if p[x]<>nombre: f.write(p[x]) f.close() categoria = "" categoria_fotos(categoria) elif opcion == "3": categorianueva=raw_input(' Indique el nombre de la categoria a crear - ') f=open('categorias_fotos','a') f.write(categorianueva+'\n') f.close() categoria_fotos(categoria) elif opcion == "4": categoria = raw_input(' Ingrese nombre de la categoria para las fotos - ') f=open('categorias_fotos', 'r') coincidencia = 'no' p = f.readlines() for x in range (len(p)): if p[x] == categoria+'\n': coincidencia='si' if coincidencia == 'no': categoria = "" raw_input ("\n Ha indicado un nombre incorrecto o que no ha sido ingresado. \n\n Oprima ENTER para continuar.") categoria_fotos(categoria) elif opcion == "5": ver("categorias_fotos", categoria) # ver.abrir('categorias_fotos') categoria_fotos(categoria) else: categoria_fotos(categoria) menu(categoria)