inSANE - Script para usar Scanner
Publicado por Guilherme Moreira de Oliveira (última atualização em 03/06/2025)
[ Hits: 144 ]
Homepage: https://cantinhodoromeo.com.br
O inSANE é um Script que foi feito para poder usar o Scanner de uma forma bem mais direta, sem precisar de mais nada além do SANE instalado e de um Scanner USB compatível.
#! /bin/bash verificarSANE () { if [ -z "$(command -v scanimage)" ]; then ## Verificando se o SANE está instalado echo "O SANE não está instalado. Favor, instalar o SANE antes de prosseguir." notificacoes faltaSANE else echo "" > /dev/null ## Se o SANE estiver instalado, prossiga fi } ## Rotina para carregar as variáveis padrões do inSANE configurarVariaveis () { PastaImagens=$(xdg-user-dir PICTURES) PastaPadrao=$PastaImagens/Scan ## Pasta onde o Scan será salvo ResolucaoPadrao=600 ## Resolução da imagem em DPI } ## Rotina para verificar se a Pasta de Scans existe pastaScan () { echo "Verificando pasta de Scans..." if [ -d "$Pasta" ]; then # Verificando se a pasta existe echo "Pasta de Escaneamento... OK" # Jogando a saída fora para prosseguir com o Script else echo "Criando a pasta de Escaneamento..." mkdir "$Pasta" # Se não existe, criar a pasta fi } ## Rotina para carregar as configurações arquivoConfiguracao () { configurarVariaveis echo "Verificando Arquivo de Configuração..." config=~/.insane.conf ## Arquivo de Configuração Padrão if [ -e "$config" ]; then ## Verificando se o Arquivo de Configuração existe echo "Lendo arquivo de configuração..." source $config ## Se existir, carrega o Arquivo de Configuração para verificar as variáveis echo -e "Verificando variáveis...\n" if [ -z "$Pasta" ]; then ## Verificando se a Variável da Pasta existe no Arquivo echo -e "\n Pasta... Erro na Configuração: Esse parâmetro não está configurado\n Usando o parâmetro padrão da Pasta..." Pasta=$PastaPadrao echo -e " Pasta de Escaneamento:" "$Pasta" "\n" else echo -e " Pasta... OK \n Pasta de Escaneamento:" "$Pasta" "\n" fi if [ -z "$Resolucao" ]; then ## Verificando se a Veriável da Resolução existe no Arquivo echo -e " Resolução... Erro na Configuração: Esse parâmetro não está configurado\n Usando parâmetro padrão da Resolução..." Resolucao=$ResolucaoPadrao echo -e " Resolução:" $Resolucao "\n" else echo -e " Resolução... OK\n Resolução:" "$Resolucao" "\n" fi pastaScan ## Verificar se a pasta do Escaneamento existe else echo "Usando configurações padrões..." Pasta=$PastaPadrao Resolucao=$ResolucaoPadrao echo -e " Pasta de Escaneamento:" "$Pasta" "\n Resolução:" $Resolucao "\n" pastaScan fi } selecionarScanner () { scannerID=$(sane-find-scanner | grep possible | awk '{print $NF}') # Nova Variável, para limitar os Scanners apenas aos USB if [ "$scannerID" == "" ]; then echo "" else scanimage -L | grep $scannerID | awk -F '`' '{ print $2 }' | cut -d"'" -f1 ## Primeiro identifica os Scanners, filtra usando o e por fim extrai o ID do dispositivo. fi } notificacoes () { if [ -z "$(command -v notify-send)" ]; then ## Verificando se o notify-send está instalado echo "" > /dev/null ## Se o notify-send não estiver instalado, prossiga else if [ "$1" == "detectandoScanner" ]; then notify-send -a "inSANE" -i scanner "Aguarde..." "Detectando Scanner..." elif [ "$1" == "scannerDetectado" ]; then notify-send -a "inSANE" -i scanner "Scanner Detectado!" "Foi detectado o scanner $Scanner" elif [ "$1" == "escaneando" ]; then notify-send -a "inSANE" -i scanner "Aguarde..." "Escaneando a imagem em $Resolucao DPI na pasta $Pasta" elif [ "$1" == "escaneamentoConcluido" ]; then #otify-send -a "inSANE" -i image "Escaneamento Concluído!" "Imagem escaneada com sucesso!" AbrirImagem=$(notify-send -a "inSANE" "Escaneamento Concluído!" "Imagem escaneada com sucesso!" -i image --action="Abrir a Imagem Escaneada" -u critical) > /dev/null # Define a ação de "Abrir Imagem com o argumento --action." case $AbrirImagem in # Se clicar no botão para Abrir a Imagem na Notificação... "0") # A saída é 0. xdg-open "$Arquivo" # E com isso, use o xdg-open para abrir a imagem que fora escaneada. Ou nesse caso, uma imagem qualquer. ;; esac elif [ "$1" == "faltaSANE" ]; then notify-send -a "inSANE" -i scanner "Erro! SANE não encontrado!" "O SANE não está instalado. Favor, instalar o SANE." elif [ "$1" == "erroScanner" ]; then notify-send -a "inSANE" -i scanner "Erro! Scanner não encontrado!" "Conecte um Scanner compatível na porta USB ou desconecte e reconecte o Scanner." fi fi } ## Rotina para verificar se o Zenity está instalado para exibir uma barra de progresso. O Zenity é uma dependência opcional progresso () { if [ -z "$(command -v zenity)" ]; then ## Verificando se o Zenity está instalado echo "" > /dev/null ## Se o Zenity não estiver instalado, prossiga else zenity --progress --title="inSANE" --pulsate --auto-close --no-cancel --text="Escaneando..." ## Se o Zenity estiver instalado, exiba uma caixa de diálogo com uma barra de progresso fi } echo -e "\nBem-vindo ao inSANE\nEsse é um Script simples para usar o Scanner por meio do SANE\nVersão 1.1.0\nScript desenvolvido por Rapoelho\n" verificarSANE arquivoConfiguracao echo "Detectando Scanner..." notificacoes detectandoScanner Scanner=$(selecionarScanner) ## Selecionando o Scanner if [ "$Scanner" == "" ]; then echo -e "\nScanner não encontrado!\nPossíveis Soluções:\n - Conecte um Scanner na porta USB do Computador\n - Desconecte e Conecte o Scanner.\n - Conecte um Scanner compatível com o SANE" notificacoes erroScanner exit else echo "Foi Detectado o Scanner" "$Scanner""." notificacoes scannerDetectado fi echo "Escaneando..." notificacoes escaneando Arquivo="$Pasta/Scan_$(date +"%Y-%m-%d_%H-%M-%S").jpg" #scanimage --device "$Scanner" --format=jpeg --output-file "$Pasta"/Scan_$(date +"%Y-%m-%d_%H-%M-%S").jpg --resolution "$Resolucao" | progresso scanimage --device "$Scanner" --format=jpeg --output-file "$Arquivo" --resolution "$Resolucao" | progresso if [ $? -eq 0 ]; then echo "Imagem escaneada com sucesso em" "$Pasta" "em" "$Resolucao" "DPI" notificacoes escaneamentoConcluido & exit fi
Script para montar dispositivo Android
Nenhum comentário foi encontrado.
Como gerar um podcast a partir de um livro em PDF
Automatizando digitação de códigos 2FA no browser
Resolver problemas de Internet
Como compartilhar a tela do Ubuntu com uma Smart TV (LG, Samsung, etc.)
Como Instalar o Microsoft Teams no Linux Ubuntu
Músicas de Andrew Hulshult no DOOM (WAD)
Instalar o Apache, MySQL e PHP no Oracle Linux 8
Bloqueando telemetria no Deepin 23.1
Como converter imagens PNG/JPEG para SVG em linha de comando