I use wmsetbg - it supports jpegs. Not that all others don't, but some don't.
Heres a quick and nasty script I use to kindof randomly change my wallpaper every 10 mins if your interested.
Code:
#!/usr/bin/perl
$num = `date +%s | tail -c 3`;
while (1)
{
foreach $file (`find /mnt/c/Wallpapers /usr/share/wallpapers /home/i/dl/done/Backgrounds -type f -exec ls -b \{\} \
\;`)
{
if($num < 2)
{
$num = `date +%S | tail -c 3`;
print "\n---------\n" . $file . "\n";
print `/usr/bin/wmsetbg $file`;
print `/bin/sleep 600`;
}
else
{
$num = $num - 1;
}
}
}