Ohjelma tallentaa kuvan muotoon KaupunginNimiPäiväKuukausiVuosi.gif, jotta kuvat voisi järjestellä helpommin.
#!/bin/bash
kaupunki=Tampere
while [ "$1" != "" ]; do
case $1 in
-k | --kaupunki ) shift
kaupunki=$1
;;
esac
shift
done
kuva=`wget -O - -q http://www.foreca.fi/Suomi/tasmasaa/$kaupunki | grep -E -o "/Suomi/kuvat/tasmasaa/fin-fi-.*\.png"`
wget -q -O ~/$kaupunki-saa.png http://www.foreca.fi$kuva
xdg-open ~/$kaupunki-saa.png
Tuo on kätevä, mutta nälkä kasvaa syödessä.Imagemagickilla kuvat yhteen vaikka näin (NW=vasen yläkulma, quality 100=ei pakata)
Ajattelin että jos skriptin jälkeen ajaisi ohjelman joka länttää tuon työpöydän taustakuvaan haluttuun kohtaan ja sitten päivittää taustakuvan?
Näinköhän tuollaiset jotenkin konsolista onnistuisi?
convert /home/ite/Kuvat/taustakuva.jpg /home/ite/Kuvat/kelitiedote.png -gravity NorthWest -composite -format jpg -quality 100 /home/ite//Kuvat/output.jpg
ja sitten vaihdetaan gnomen taustakuva.gconftool-2 --type string --set /desktop/gnome/background/picture_filename "/home/ite/Kuvat/output.jpg"
Tein ton skriptin pohjalta oman versioni, koska ilmatieteenlaitoksen säätilakuva on mielestäni aika huono. Tämä versio hakee kuvan forecan sivuilta. Asetuskansioita tai tiedostoja ei ole. Skriptin alussa on määritelty oletuspaikkakunta (Tampere). Muun paikkakunnan tiedot voi hakea "-k <paikkakunta>" vivulla (--kaupunki <paikkakunta> toimii myös). Skripti tallentaa kuvan kotihakemistoon "<paikkakunta>-saa.png" nimellä ja päällekirjoittaa kuvan aina uudelleen ajettaessa. Isoilla tai pienillä kirjaimilla ei ole väliä paikkakunnan nimessä. Väärin kirjoitettu paikkakunta, tai paikkakunta mitä ei foreca tunne palauttaa Helsingin ennusteen (Forecan sivut säästivät näissä asioissa vaivalta ;D) Voi sisältää joitain käsittämättömyyksiä, en ole mikään ammattilainen. Toimii mulla kuitenkin!Koodia: [Valitse]#!/bin/bash
kaupunki=Tampere
while [ "$1" != "" ]; do
case $1 in
-k | --kaupunki ) shift
kaupunki=$1
;;
esac
shift
done
kuva=`wget -O - -q http://www.foreca.fi/Suomi/tasmasaa/$kaupunki | grep -E -o "/Suomi/kuvat/tasmasaa/fin-fi-.*\.png"`
wget -q -O ~/$kaupunki-saa.png http://www.foreca.fi$kuva
xdg-open ~/$kaupunki-saa.png
EDIT: Voisin toki katsoa, voisiko koodiasi implemitoida omaan skriptiini, jos sallit. Tällöin käyttäjä voisi itse määritellä, mistä sääennusteen haluaa hakea. Ota yhteyttä jos tämän sallit.Sallin toki. yhdistä vaan ihmeessä toi valintamahdollisuus mukaan jos haluat!
taustakuva | Kuva, johon säätiedot lisätään. |
tauko | Päivitysten välinen aika sekuneissa. |
tausta | Kuva, joka asetetaan taustakuvaksi, johon säätiedot on lisätty. |
#!/bin/bash
taustakuva=$HOME"/Firefox_wallpaper.png"
tauko=$((20*60))
tausta="$HOME/saa.jpg"
saakuva=`wget -O - -q http://www.foreca.fi/Suomi/tasmasaa/Turku | grep -E -o "/Suomi/kuvat/tasmasaa/fin-fi-.*\.png"`
saakuva="http://www.foreca.fi"$saakuva
wget -q -O $HOME/.saatieto.png $saakuva
/usr/bin/gimp --no-splash --console-messages --no-interface -b '(c2a ".saatieto.png") (gimp-quit 0)'
convert $taustakuva $HOME/.saatieto.png -gravity Southwest -composite -format jpg -quality 100 $tausta
gconftool-2 --type string --set /desktop/gnome/background/picture_filename "$HOME/saa.jpg"
convert koe.png -matte -fill none -fuzz 1% -transparent white result.png
Löysin Googlella tuollaisen komennon, mutta tulos ei ole likikään yhtä hyvä kuin GIMPillä. Käytännössä ei toimi ollenkaan.Tuo muuttaa vain puhtaan valkoisen läpinäkyväksi. Tuo kuva on hiukan hankala, kun siinä on viivojen välissä hyvin vaaleaa sinistä ja vielä noissa tolpissa liukuvärjäys, jonka vaalein osa ei saisi leikkautua pois. Maskin tekokin noin monisävyiselle ja mutkikkaalle kuvalle voi olla hankalaa. Kokeillaan kynnystää vaaleimpia sävyjä täysvalkoiseksi:Koodia: [Valitse]convert koe.png -matte -fill none -fuzz 1% -transparent white result.png
convert koe.png -white-threshold 90% koe1.png
convert koe1.png -matte -fill none -fuzz 1% -transparent white koe2.png
(define
(c2a file)
(let*
(
(img (car
(gimp-file-load 1 file file)
)
)
(d (car (gimp-image-active-drawable img)))
)
(gimp-image-convert-rgb img)
(plug-in-colortoalpha 1 img d '(255 255 255))
(file-png-save 1 img d file file 0 6 0 0 0 1 1)
(gimp-image-delete img)
)
)
mplayer http://jiku.arkku.net/php/info/video.mp4
Myös lähdekoodi ch1.php.txt toivottavasti puhuu puolestaan, vaikka myönnettäköön että koodini on yleensä aika huonolaatuista, kuten koodin kommentoinnitkin.No nyt toimii!Moi! Voisitko laittaa nuo valmiit skriptisi jakoon, tuo on juuri sitä mitä olen etsinyt? Eli saisin tuon sääennustekuvan vasempaan alakulmaan ja voisin käynnistää sen sinne vaikka conkylla tai cronilla..
Eli muokkasin aikaisemmassa viestissä ollutta 'saa.sh'-koodiosaa. Käyttää nyt GIMPpiä ja ImageMagickia taustakuvan tekemiseen. GIMPpiin tarvitaan vielä oma skriptinsä (c2a.scm). While-silmukka ei päivittänyt näytön taustakuvaa, joten laitoin sen cronilla päivittymään 20 min välein.
c2a.scm:Koodia: [Valitse](define
(c2a file)
(let*
(
(img (car
(gimp-file-load 1 file file)
)
)
(d (car (gimp-image-active-drawable img)))
)
(gimp-image-convert-rgb img)
(plug-in-colortoalpha 1 img d '(255 255 255))
(file-png-save 1 img d file file 0 6 0 0 0 1 1)
(gimp-image-delete img)
)
)
Ja lopputulos: Työpöytä-ketju (http://forum.ubuntu-fi.org/index.php?topic=431.msg208967#msg208967)
Muokattu GIMP-skriptiä -> Kuva voi olla muussakin muodossa kuin PNG.
batch command experienced an execution error
^C/usr/bin/gimp: terminated: Keskeytys
/usr/lib/gimp/2.0/plug-ins/script-fu terminated: Keskeytys
convert: Improper image header `/home/sami/.saatieto.png' @ png.c/ReadPNGImage/2923.
convert: missing an image filename `/home/sami/saa.jpg' @ convert.c/ConvertImageCommand/2838.
#!/bin/bash
taustakuva=$HOME"/Lataukset/Exotic_Paradise_1280_1024.jpg"
tausta="$HOME/Kuvat/saa.jpg"
wget -q -O ~/.Tampere-saa.png http://www.foreca.fi/meteogram.php?loc_id=100634963&lang=fi
convert $taustakuva $HOME/.Tampere-saa.png -gravity North -composite -format jpg -quality 100 $tausta
gconftool-2 --type string --set /desktop/gnome/background/picture_filename $tausta
Kun yritän ajaa tätä skriptiä cron:lla, kuva tulee kyllä hakemistoon mutta tuota "gconftool" komentoa cron ei pysty suorittamaan ??? Mutta komento onnistuu kyllä koneen käynnistymisen yhteydessä, kun laittaa skriptin ajoon "Käynnistettävät ohjelmat".
EDIT2: Mä tein oman version :-), tällä tulee Tampereen sää työpöydälle... Mint9:ssä on tuo paneeli alhaalla, niin se menee vähän säätietojen päälle, jos käyttää -gravity parametrin arvona Southwest. Mitenköhän sitä sääkuvaa saisi aavistuksen nostettua ylöspäin?Koodia: [Valitse]#!/bin/bash
taustakuva=$HOME"/Lataukset/Exotic_Paradise_1280_1024.jpg"
tausta="$HOME/Kuvat/saa.jpg"
wget -q -O ~/.Tampere-saa.png http://www.foreca.fi/meteogram.php?loc_id=100634963&lang=fi
convert $taustakuva $HOME/.Tampere-saa.png -gravity North -composite -format jpg -quality 100 $tausta
gconftool-2 --type string --set /desktop/gnome/background/picture_filename $tausta
# m h dom mon dow command
0,15,30,45 * * * * /home/sami/skriptit/saaforeca.sh
#!/bin/bash
taustakuva=$HOME"/Lataukset/Exotic_Paradise_1280_1024.jpg"
tausta="$HOME/skriptit/saa.jpg"
# Tässä haetaan DBUS_SESSION_BUS_ADDRESS ja exportataan se
#-------------------------------------------------------------------------------------
# Get the pid of nautilus
nautilus_pid=$(pgrep -u $LOGNAME -n nautilus)
# If nautilus isn't running, just exit silently
if [ -z "$nautilus_pid" ]; then
exit 0
fi
# Grab the DBUS_SESSION_BUS_ADDRESS variable from nautilus's environment
eval $(tr '\0' '\n' < /proc/$nautilus_pid/environ | grep '^DBUS_SESSION_BUS_ADDRESS=')
# Check that we actually found it
if [ -z "$DBUS_SESSION_BUS_ADDRESS" ]; then
echo "Failed to find bus address" >&2
exit 1
fi
# export it so that child processes will inherit it
export DBUS_SESSION_BUS_ADDRESS
#-----------------------------------------------------
wget -q -O ~/.Tampere-saa.png http://www.foreca.fi/meteogram.php?loc_id=100634963&lang=fi
convert $taustakuva $HOME/.Tampere-saa.png -gravity North -composite -format jpg -quality 100 $tausta
gconftool-2 --type string --set /desktop/gnome/background/picture_filename $tausta
#echo "gconftool status on" $? > /home/sami/skriptit/saatieto.log