KDialog com Shell Script - Conversão de slides JPG para projetores com suporte a miniaturas de imagens
Apresento um Shell Script para ser utilizado no Kubuntu 12.04 LTS. Após a instalação de alguns aplicativos básicos, este script poderá converter qualquer imagem JPG para dar suporte a cabeçalho Exif com miniatura. No GNU/Linux, o KDialog provê a interface para usuários menos experientes. Este script poderá ser adaptado para outras distribuições, com pequenas alterações.
[ Hits: 10.811 ]
Por: Édio Mazera em 08/09/2012
#!/bin/bash #Conversor entre formatos de imagem jpg # Edio Mazera - mazera3@gmail.com # ################# TESTA SE EXISTE APLICATIVOS ################ dialogo=`which kdialog` converte=`which convert` headj=`which jhead` ################ DEFININDO VARIÁVEIS ################################ nome=slide ; ext=jpg ; cont=1 ; output= ##################################################################### if [ ! $dialogo ] then echo "Kdialog nao encontrado. Instale o Kdialog" exit 1 fi if [ ! $converte ] then echo " Convert não encontrado" exit 1 fi if [ ! $headj ] then echo " Jhead não encontrado" exit 1 fi # MENSAGEM AO USUARIO kdialog --title "Converte Slides JPG" --msgbox \ "Este programa converte imagem JPG para o formato não entrelaçado \ \ncria cabeçalho mínimo com uma imagem miniatura \ \nusando convert e jhead.\ \nCréditos: Édio Mazera - mazera3@gmail.com." \ 0 0 ######### PERGUNTA SE DESEJA CONTINUAR ######## kdialog --yesno "Deseja prosseguir com a conversão? \n Escolha a pasta que contem os slides. " if [ "$?" -ne "0" ] then echo " Não! Abortado..." exit 1 fi ######### VAI AO DIRETORIO ESCOLHIDO ########## diretorio=$(kdialog --getexistingdirectory "$HOME") if [ "$?" -ne "0" ] then echo " Sem diretorio! Abortado..." exit 1 fi cd "$diretorio" ######### SALVAR O DIRETÓRIO ATUAL ################ currentdir=`pwd` dbusRef=`kdialog --progressbar "Iniciando ..." 12` qdbus $dbusRef Set "" value 1 ; sleep 2 qdbus $dbusRef setLabelText "verificando a existência de arquivos jpg" ; ###### VERIFICAR SE EXISTE ARQUIVOS JPG ################## N_JPG=`find -iname "*.jpg" | wc -l` if [ "$N_JPG" -eq "0" ] then kdialog --title "verificando a existência de arquivos" --msgbox "Não existe arquivos jpg! Abortado..." exit 1 fi qdbus $dbusRef Set "" value 2 ; sleep 1 ###### CONVERTER MAIÚSCUAS PARA MINÚSCULAS################ N_JPG=`find -name "*.JPG" | wc -l` if [ "$N_JPG" -gt "0" ] then qdbus $dbusRef setLabelText "Convertendo de maiúsculo para minúsculo" for ARQ in *.JPG; do mv "$ARQ" "`echo $ARQ | tr [A-Z] [a-z]`" done else kdialog --title "CONVERSÃO" --msgbox "Não existe JPG para converter \n de maiúsculo para minúsculo! Continuando..." sleep 1 fi qdbus $dbusRef Set "" value 3 ; sleep 1 qdbus $dbusRef setLabelText "removendo arquivos indesejáveis" ####### REMOVE ARQUIVOS INDESEJÁVEIS #################### N_HTML=`find -iname "*.html" | wc -l` if [ "$N_HTML" -gt "0" ] # testa se html é maior que zero then rm *.{html,HTML} else echo "Não existe html!..." fi N_PNG=`find -iname "*.png" | wc -l` if [ "$N_PNG" -gt "0" ] then rm *.{png,PNG} else echo "Não existe png!..." fi qdbus $dbusRef Set "" value 4 ; sleep 1 ####### RENOMEANDO SLIDES POR ORDEM ALFABÉTICA ############ N_IMG=`find -iname "img*" | wc -l` if [ "$N_IMG" -gt "0" ] then qdbus $dbusRef setLabelText "renomeando slides img0.jpg a img9.jpg" for X in $(ls -t *.jpg | grep [g][0-9]\.jpg$); do Y=$(echo $X | cut -d. -f 1) NOME=$(echo $Y | cut -dg -f 1) NUM=$(echo $Y | cut -dg -f 2 ) NOVO=$(echo ${NOME}g0${NUM}.jpg) mv "$X" "$NOVO"; done; else echo "Não existe img*..." fi qdbus $dbusRef Set "" value 5 ; sleep 1 qdbus $dbusRef setLabelText "renomeando slides para o formato slide000.jpg" ######### renomeando slides para o formato slide000.jpg ############ cont=1 for i in *.{jpg,JPG}; do zeros=`printf "%02d\n" ${cont}` # acrescenta 00 nn="tmp${zeros}.jpg" # concatena imagens no formato img00.jpg mv "$i" "$nn" [ $? -eq 0 -a "$output" != "nao" ] && echo "[$i] Renomeado para: $nn" cont=`expr $cont + 1` done qdbus $dbusRef Set "" value 6 ; sleep 1 qdbus $dbusRef setLabelText "convertendo slides para formato jpg não entrelaçado" ########## CONVERTE PARA JPG NÃO ENTRELAÇADO ################ convert -interlace none *.jpg $nome.jpg qdbus $dbusRef Set "" value 7 ; sleep 1 qdbus $dbusRef setLabelText "removendo arquivos temporários tmp00 ..." ############ apaga imagens antigas tmp00.jpg ############## `rm tmp*` qdbus $dbusRef Set "" value 8 ; sleep 1 qdbus $dbusRef setLabelText "renomeando slides para o formato slide-00.jpg" ############ RENOMEANDO SLIDES ##################### for X in $(ls -t *.jpg | grep [-][0-9]\.jpg$); do Y=$(echo $X | cut -d. -f 1) NOME=$(echo $Y | cut -d- -f 1) NUM=$(echo $Y | cut -d- -f 2 ) NOVO=$(echo ${NOME}-0${NUM}.jpg) mv "$X" "$NOVO"; done; qdbus $dbusRef Set "" value 9 ; sleep 1 qdbus $dbusRef setLabelText "criando cabeçalho mínimo com miniatura" ######## CRIA CABEÇALHO MÍNIMO COM MINIATURA ############### jhead -mkexif -rgt *.$ext qdbus $dbusRef Set "" value 10 ; sleep 1 qdbus $dbusRef setLabelText "slides convertidos" qdbus $dbusRef Set "" value 11 ; sleep 1 qdbus $dbusRef setLabelText "renomeando slides para o formato slide000.jpg" ######## RENOMEANDO SLIDES POR ORDEM ALFABÉTICA ########## cont=1 for i in *.$ext; do zeros=`printf "%03d\n" ${cont}` nn="${nome}${zeros}.${ext}" mv "$i" "$nn" [ $? -eq 0 -a "$output" != "nao" ] && echo "[$i] Renomeado para: $nn" cont=`expr $cont + 1` done qdbus $dbusRef Set "" value 12 ; sleep 1 qdbus $dbusRef setLabelText "concluindo..." ###################################################### qdbus $dbusRef close kdialog --msgbox "Ok, Slides convertidos!" #copiar para pendrive kdialog --yesno "Deseja salvar os slides no PENDRIVE agora? \n Escolha o caminho. " if [ "$?" = "0" ]; then salvar=$(kdialog --getexistingdirectory "$currentdir") else exit 1 fi if [ "$?" = "0" ]; then cp *.$ext $salvar ; sleep 1 kdialog --msgbox "Uma cópia dos slides foram salvos no diretório \n $salvar" else kdialog --msgbox "Encerrando..." ; sleep 1 exit fi exit ################### FIM #############################
OpenSmiles - Criando imagens e figuras de moléculas químicas em formato de qualidade
Coloque ordem em seus programas
Configurando OpenSSH no Windows Server 2003 para autenticação por chave (sem senha)
Criando uma ISO bootável do OpenBSD
Impressora PDF via Samba para estações Windows
Nenhum comentário foi encontrado.
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Meu Fork do Plugin de Integração do CVS para o KDevelop
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Compartilhamento de Rede com samba em modo Público/Anônimo de forma simples, rápido e fácil
Cups: Mapear/listar todas as impressoras de outro Servidor CUPS de forma rápida e fácil
Criando uma VPC na AWS via CLI
Tem como instalar o gerenciador AMD Adrenalin no Ubuntu 24.04? (15)
Tenho dois Link's ( IP VÁLIDOS ), estou tentando fazer o failover... (0)
Pendrive não formata de jeito nenhum (4)