• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Gust

[Python] Visualizador de Imagens

2 mensagens neste tópico

Isto é o que dá ficar doente em casa durante uma semana.

Isto é um programa parecido com o fullscreen do "Windows Picture and Fax Viewer".

É muito simples de usar.

Basta carregar nas setas, nos botões do rato ou rodar a rodinha do rato para trocar de imagem.

Também troca automaticamente de imagem em determinados intervalos de tempo. Que podem ser alterados carregando nos números do teclado. 0 para parar a sucessão e Esc para fechar o programa.

Apresenta imagens em .jpg, .jpeg, .gif e .png. Mas posso acrescentar mais extensões basta que sejam suportadas pelo Pygame.

A uma resolução de 1440*900.

# -*- coding: iso-8859-15 -*-
import pygame, glob

caminho = raw_input("Deseja indicar um caminho? Se não indicar um caminho serão usadas as imagens do directório actual.\n")
pygame.init()
pygame.display.set_mode((1440,900), pygame.FULLSCREEN)
pygame.display.set_caption('Image Viewer')
screen = pygame.display.get_surface()
listaimgs = []
for im in glob.glob(caminho + "*.gif") + glob.glob(caminho + "*.png") + glob.glob(caminho + "*.jpeg") + glob.glob(caminho + "*.jpg"):
   listaimgs.append(im)
pygame.time.set_timer(pygame.KEYDOWN, 5000)
letra = pygame.font.Font(None, 18)
index = 0

while 1:
   pygame.event.pump()
   pygame.event.set_blocked(pygame.KEYUP)
   pygame.event.set_blocked(pygame.MOUSEMOTION)
   pygame.event.set_blocked(pygame.MOUSEBUTTONUP)
   pygame.event.get()
   if index > len(listaimgs)-1:
       index = 0
   elif index < -len(listaimgs)+1:
       index = 0
   img = listaimgs[index]
   im = img
   try:
       img = pygame.image.load(img)
   except:
       listaimgs.remove(listaimgs[index])
       continue
   coord = img.get_size()
   coord = list(coord)
   if coord[0] > 1440:
       coord[0] = 1440
   if coord[1] > 900:
       coord[1] = 900
   img = pygame.transform.scale(img, coord)
   coord = ((1440-coord[0])/2, (900-coord[1])/2)
   screen.blit(img, coord)
   screen.blit(letra.render(im, True, (255,255,255)), (0,0))
   pygame.display.flip()
   evt = pygame.event.wait()
   if evt.type == pygame.KEYDOWN:
       if evt.key == 276:
           index -= 1
       elif evt.key == 275 or evt.key == 0:
           index += 1
       elif evt.key in [48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58]:
           pygame.time.set_timer(pygame.KEYDOWN, ((evt.key-48)*1000))
       elif evt.unicode == u'\x1b':
           break
   elif evt.type == pygame.MOUSEBUTTONDOWN:
       if evt.button == 4 or evt.button == 1:
           index += 1
       elif evt.button == 5 or evt.button == 3:
           index -= 1
   screen.fill((0,0,0))

É necessário o Pygame.

Sugiram mais funcionalidades.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Só agora é que reparei neste tópico, continua o bom trabalho Gust, vou tentar experimentar o programa. ;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora