DIT-fanzine

From XPUB & Lens-Based wiki

DIT-fanzine

make pdfs (you need to install cups-pdf for that pdfs go in the directory ~/PDF/

# sudo apt-get install cups-pdf

lpr code.py -P PDF
mv ~/PDF/code.pdf .

lpr bami.png -P PDF
cp ~/PDF/bami.pdf
.


resize JPGs (in this case all of them) to 320*240px

mogrify -resize 320x240 *.JPG



takes image from two folders and performs the dissolve function on them


xRANGE=480
yRANGE=640

#rename all images in folder image01 to one0001.jpg one0002.jpg... and copy them into the folder where the script is
cd images01
convert * one%04d.jpg
cp one* ..
cd ..
#rename all images in folder image02 to two0001.jpg two0002.jpg... and copy them into the folder where the script is
cd images02
convert * two%04d.jpg
cp two* ..
cd ..

#this is a loop that now does ten times the same thing, namely:
for ((i=0;i<10;i+=1))
do
#picking a random file that starts with one
set -- one*
length=$#
random_one=$(( $RANDOM % ($length + 1) ))
#echo ${!random_one}
one=${!random_one}

#and a random file that starts with two
set -- two*
length=$#
random_two=$(( $RANDOM % ($length + 1) ))
#echo ${!random_two}
two=${!random_two}

#and then dissolves the two random files over each other and names it 0.jpg 1.jpg.. 9.jpg which makes 10 new jpges in total, hooray
filename=$i.jpg
convert -size $((xRANGE))x$((yRANGE)) xc:white $filename
composite -dissolve 50  -gravity South \
           $one $two \
$filename

done



take images from a folder called image and place them randomly on a white canvas and write "happy happy joy joy"

xRANGE=480
yRANGE=640

cd image
#we rename the images because numbers in the image over function do not work
rename 'y/0-9/a-z/' *
convert -size $((xRANGE))x$((yRANGE)) xc:white image.gif



for i in $(ls)
do
x=$RANDOM 
let "x %= $xRANGE"
x=$((x-100))
y=$RANDOM
let "y %= $yRANGE"
y=$((y-100))
convert image.gif -draw "image over $x,$y 150,122 $i" image.gif

done


convert -font BradleyGratis.ttf -fill yellow -pointsize 35 \
-draw 'text 10,400 "happy happy joy joy"' \
image.gif output.jpg 

cp output.jpg ..
rm output.jpg
rm image.gif
cd ..
display output.jpg



for i in $(ls)
do
composite -dissolve 50 $i loading.gif composed$i
done

#takes all files from the directory and composes it 50% over an image called loading.gif



spider.py Custom image download from any website:

import urllib2, urlparse, os, sys
import html5lib
 
def absolutizeURL (href, base):
    if not href.lower().startswith("http://"):
        return urlparse.urljoin(base, href)
    return href

def openURL (url, data):
    """
    returns (page, actualurl)
    sets user_agent and resolves possible redirection
    realurl maybe different than url in the case of a redirect
    """    
    request = urllib2.Request(url)
    user_agent = "Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.1.5) Gecko/20091109 Ubuntu/9.10 (karmic) Firefox/3.5.5"
    request.add_header("User-Agent", user_agent)
    pagefile=urllib2.urlopen(request, data)
    realurl = pagefile.geturl()
    return (pagefile, realurl)

def downloadURL (url, foldername=""):
    """
    returns (page, actualurl)
    sets user_agent and resolves possible redirection
    realurl maybe different than url in the case of a redirect
    """    
    request = urllib2.Request(url)
    user_agent = "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.14) Gecko/20080418 Ubuntu/7.10 (gutsy) Firefox/2.0.0.14"
    request.add_header("User-Agent", user_agent)
    pagefile=urllib2.urlopen(request)
    realurl = pagefile.geturl()

    # make a filename based on the URL, inside foldername (if given)
    urlpath = urlparse.urlparse(url)[2]
    (path, filename) = os.path.split(urlpath)
    filename = os.path.join(foldername, filename)
    out = open(filename, "wb")
    bytes = 0
    while True:
        data = pagefile.read(1024)
        if not data: break
        bytes += len(data)
        out.write(data)
    out.write(data)
    pagefile.close()
    out.close()
    return bytes


def spiderImages (url, postdata=None, foldername=""):
    """
    Opens an HTML page at a URL, and downloads all the images (those referenced in <img> tags, images from css are not!)
    Files are put inside foldername if given.
    """
    if foldername and not os.path.isdir(foldername):
        os.mkdir(foldername)
    f, url2 = openURL(url, postdata)
    parser = html5lib.HTMLParser(tree=html5lib.treebuilders.getTreeBuilder("dom"))
    tree = parser.parse(f)
    f.close()
    tree.normalize()
    count = 0; totalbytes = 0
    for node in tree.getElementsByTagName("img"):
        src = node.getAttribute("src")
        if src:
            src = absolutizeURL(src, url2)
            print >> sys.stderr, src
            bytes = downloadURL(src, foldername)
            if bytes:
                totalbytes += bytes
                count += 1
    return count, totalbytes

if __name__ == "__main__":
    spiderImages("http://cnn.com", None, "test")



Polaroid+shadow-effect all images in the folder:

montage -polaroid -10 -shadow *.jpg new.jpg


Jakubs script for 256 circles:

str=""
xRANGE=480
yRANGE=640

color=0	

for ((i=0;i<256;i+=1))
do
x=$RANDOM
let "x %= $xRANGE"
y=$RANDOM
let "y %= $yRANGE"
draw="fill rgb($color, $color, $color) circle $x,$y $((x+10)),$((y+10)) "
str="$str$draw"
color=$((color+1))
done

convert -size 480x649 xc:black  \
        -draw "$str" neww.jpg

display neww.jpg


Attachments