Como faço para converter arquivos de imagem em formato .edj a partir da linha de comando?

1

Eu instalei recentemente o E17 fork, Moksha, na minha máquina Sabayon Linux o problema é que as ferramentas gráficas para mudar o papel de parede para arquivos JPG ou PNG estão me causando dor (e sim eu tentei obter suporte para isso de a comunidade Bodhi Linux, veja esta postagem no fórum ) , mas eu pareço ser capaz de usar papéis de parede (incluindo os animados) no formato .edj com bastante facilidade. Então, eu estava esperando que alguém tivesse um shell script (simples o suficiente para eu poder usar) ou algo que eu pudesse executar a partir da linha de comando para converter meus papéis de parede JPG e PNG para o formato de arquivo .edj.

    
por Brenton Horne 16.10.2015 / 14:20

1 resposta

0

Eu vou te dar o trecho do código para a variedade que faz isso. Esta versão do código apenas incorpora um caminho para a imagem, em vez de incluir a imagem no arquivo edj também.

OUTPUT_DIR="$HOME/.e/e/backgrounds"

TEMPLATE='
images { image: "@IMAGE@" USER; }
collections {
  group {
  name: "e/desktop/background";
  data { item: "style" "4"; item: "noanimation" "1"; }
  max: @WIDTH@ @HEIGHT@;
  parts {
    part {
    name: "bg";
    mouse_events: 0;
    description {
      state: "default" 0.0;
      aspect: @ASPECT@ @ASPECT@;
      aspect_preference: NONE;
      image { normal: "@IMAGE@"; scale_hint: STATIC; }
    }
    }
  }
  }
}
'

OFILE="$OUTPUT_DIR/variety_wallpaper_$RANDOM"

DIMENSION="$(identify -format "%w/%h" "$WP")"

if [ ! -z "$DIMENSION" ]; then
    WIDTH=$(echo $DIMENSION | cut -d/ -f1)
    HEIGHT=$(echo $DIMENSION | cut -d/ -f2)
    IMAGE="$(echo "$WP" | sed 's/[^[:alnum:]_-]/\&/g')"

    if [ -z "$HEIGHT" -o "$HEIGHT" = "0" ]; then
        ASPECT="0.0"
    else
        ASPECT=$(echo "scale=9; $DIMENSION" | bc)
    fi
fi

printf "%s" "$TEMPLATE" | \
sed "s/@ASPECT@/$ASPECT/g; s/@WIDTH@/$WIDTH/g; s/@HEIGHT@/$HEIGHT/g; s|@IMAGE@|$IMAGE|g" > "$OFILE.edc"
edje_cc "$OFILE.edc" "$OFILE.edj" 2>/dev/null
rm "$OFILE.edc"

A fonte completa é link

Se você quiser incorporar a imagem que você pode fazer o seguinte, eu consegui isso criando um papel de parede através da iluminação UI e descompilando-o com edje_decc

images { image: "1920x1080.png" LOSSY 90; }
collections {
  group { name: "e/desktop/background";
  data { item: "style" "4"; }
    data.item: "noanimation" "1";
    parts {
      part { name: "bg"; mouse_events: 0;
        description { state: "default" 0.0;
          aspect: 1.777777778 1.777777778; aspect_preference: NONE;
          image { normal: "1920x1080.png";  scale_hint: STATIC; }
        }
      } 
    } 
  }
}

você criaria o tema com edje_cc -id . -fd . e_bgdlg_new.edc -o 1920x1080.edj presumindo que o acima estava no arquivo e_bgdlg_new.edc e sua imagem estava no mesmo diretório em que você estava chamando o script

    
por 19.11.2015 / 12:17