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.810 ]
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
Script de backup full + diferencial + compactador + restauração
Minha caixa de ferramentas no GNU/Linux
Ajustando a hora do micro com extrema precisão
BigBashView, interface gráfica para o seu shell script
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)