maio, 2010


30
mai 10

pyCalculadora 0.1

Estou preparando uma atualização para o pyContas (ainda sem previsão de data de lançamento) e nela eu vou precisar de uma calculadora. Eu sei que todos os Sistemas Operacionais ou Ambientes Gráficos tem uma calculadora, mas eu queria que estivesse dentro do próprio aplicativo. Então arregacei as mangas e desenvolvi o pyCalculadora (minha esposa adora minha criatividade para nomes de programas, hehehehehehehe).

Essa é a versão 0.1 ainda, mas faz tudo o que eu queria, na verdade quase tudo, eu queria que tivesse calculo de porcentagem, mas assumo que não entendi exatamente como uma calculadora faz esse calculo e também não tive paciência para pesquisar isso, se alguém souber por favor escreva no comentário que eu implemento.

Críticas e sugestões são SEMPRE bem vindas, se alguém quiser criar um logotipo melhor, esteja a vontade, assumo que meus conhecimento em inkscape e criatividade são bastantes limitados.

Para baixar é só clicar no link “Programas feitos por mim

Share

23
mai 10

Convertendo fotos para um tamanho menor e organizando em pastas

Sempre tenho um problema quando descarrego as fotos de uma câmera digital, como os arquivos são muito grandes tenho que converter para um tamanho menor no gimp para poder enviar por e-mail, ou postar aqui no site, fora ter que organizar em pastas com data e nome do evento.

Para automatizar esse processo fiz um shellscript usando zenity e o ImageMagic. A única coisa que você precisa alterar para usar é a pasta destino das fotos na variável destinoFotos logo no início do script.

O que o script faz é pedir a pasta de origem das fotos, descrição e data do evento. Com isso ele vai montar a seguinte estrutura na pasta de destino:

/pasta destino/ano/mes/dia/descricao do evento/originais
/thumbnails

O código segue abaixo, fique a vontade para modificar.

#!/bin/bash
#  Desenvolvido por Guilherme Jr. <http://www.guilhermejr.net/>

# Caminho da pasta destino das fotos
destinoFotos=/DADOS/fotos

# Função da mensagem de cancelamento
cancelamento() {
    zenity --info --text "Operação cancelada!";
    exit 0;
}

# Caminho da pasta onde estãs as fotos
caminho=$(zenity --file-selection --directory --title="FOTOS")

# Se cancelar operação
if [ -z $caminho ]; then
    cancelamento
fi

# Descrição do evento
descricao=$(zenity --entry --text "Descrição do evento:" --title="FOTOS")

# Se cancelar operação
if [ -z $descricao ]; then
    cancelamento
fi

# Data do evento
data=$(zenity --calendar --text "Selecione data do evento:" --date-format=%d-%m-%Y --title="FOTOS")

# Se cancelar operação
if [ -z $data ]; then
    cancelamento
fi

# Pega o dia mês e ano
dia=$(echo $data | cut -d'-' -f1)
mes=$(echo $data | cut -d'-' -f2)
ano=$(echo $data | cut -d'-' -f3)

sizeof() { du -s "$1" | cut -f1; }
running(){ ps $1 | grep $1 >/dev/null; }

# Total a copiar (em bytes)
TOTAL=$(sizeof "$(echo $caminho)")

# Checa se existe a pasta do ano do evento se não existir cria
if [ ! -d $destinoFotos/$ano ]; then
	mkdir $destinoFotos/$ano
fi
cd $destinoFotos/$ano

# Checa se existe a pasta do mês do evento se não existir cria
if [ ! -d $mes ]; then
	mkdir $mes
fi
cd $mes

# Checa se existe a pasta do dia do evento se não existir cria
if [ ! -d $dia ]; then
	mkdir $dia
fi
cd $dia

# Cria pasta com o nome do evento
mkdir "$descricao"
cd "$descricao"

# Cria pastas
mkdir originais
mkdir thumbnails

cd originais

cp -r "$(echo $caminho)/"* . &
CPPID=$!

pastaDestinoFotos=$(pwd)

(
	# enquanto o processo de cópia estiver rodando
	while running $CPPID; do

		# quanto já foi copiado?
		COPIADO=$(sizeof "$(echo $pastaDestinoFotos)")

		# qual a porcentagem do total?
		PORCENTAGEM=$((COPIADO*100/TOTAL))

		# envia a porcentagem para o dialog
		echo $PORCENTAGEM

		# aguarda até a próxima checagem
		sleep 1
	done	

	# cópia finalizada, mostra a porcentagem final
	echo 100

) | zenity --progress --percentage=0 --auto-close --text "Copiando fotos... "

TOTAL=$(ls | wc -l)
I=0

(
	for img in $(ls | egrep ".+\.[Jj][Pp][Ee]?[Gg]") ; do
		convert "$img" -thumbnail 512x384 ../thumbnails/"$img"
		I=$((I+1))
		PORCENTAGEM=$((I*100/TOTAL))
		echo $PORCENTAGEM
	done
	echo 100

) | zenity --progress --percentage=0 --auto-close --text "Gerando thumbnails... "

zenity --info --text "CONCLUÍDO"
Share