Posts Tagged ‘python’

2 Bilder mit Python vergleichen

December 28th, 2009

Hier ein kleines Tutorial wie man zwei Bilder mit Python bzw. mit PIL (Python Imaging Library) vergleicht. Sofern die zwei Bilder gleich sind geben wir ‘True‘ zurück, andernfalls ein None.

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import ImageChops
import Image
 
def img_equal(im1, im2):
    im1 = Image.open(im1)
    im2 = Image.open(im2)
    return ImageChops.difference(im1, im2).getbbox() is None
 
if img_equal('/home/someshot.png', '/home/anotherone.png'):
    print 'jepp - they are equal'
else:
    print 'everything ok - keep on rockin'

Popularity: 60% [?]

WOMBATcms

August 5th, 2009

Meine Person arbeitet ab sofort wieder an einem CMS. Ich habe es WOMBATcms getauft und es wird 100% python sein.

wombatSchon bald gibts ein paar Screenshots und eine Featurelist. Nähere Informationen zum CMS gibt es auf ohloh.net und unter wombatcms.de


Popularity: 16% [?]

Filter: Truncate Words

October 30th, 2007

Wer kennt sie nicht. Die übermütigen Superkommentatoren in diversen Newspostings. Von “erst0r” bis “looooooooooooooooooooooooooooooooool” ist alles vertreten. Und da sind wir auch schon beim Problem. Dieses super-extra-lange Wort. Vielen Designern sind solche Dinge ein Dorn im Auge. Dank Django können wir die ganze Sache rapide kürzen.

Wir verwenden im Template einfach einen slice, z.B. so {{ comment.comment|slice:”:5″ }}

Tja, schön und gut….aber was tut man wenn “waaaaaaaaaaaaaaaaaaaaaaaaaas geeeeeeeeeeeht aaaaaab?!?!?” gespamt wird? Bei einem slice von z.B. 5 Zeichen würde nur noch “waaaa…” dran stehen. Wollen wir das? Nö.

Also muss der eigene Filter her. Damit man nicht groß nachdenken muss, wie / wo / was – hier fertig von mir geschrieben :)

from django import template
register = template.Library()
 
@register.filter
def truncatewords(s, num):
"""
Truncates a word after a given number of chars
Argument: Number of chars to truncate after
"""
    length = int(num)
    string = []
    for word in s.split():
        if len(word) > length:
            string.append(word[:length]+'...')
        else:
            string.append(word)
    return u' '.join(string)

Was geschieht nun, wenn man den Filter einsetzt? Der Filter schneidet bei jedem Wort die angegebene Anzahl ab, also wird aus unserem oben genannten “Was geht ab” ein “waaaa… geeee… aaaaa…”. Ist zwar auch nicht die Krönung der Schöpfung aber immerhin, ne? :)

In diesem Sinne – viel Spaß damit.

Popularity: 16% [?]