<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Thomas Schwärzl &#187; python</title>
	<atom:link href="http://schwaerzl.de/tag/python/feed/" rel="self" type="application/rss+xml" />
	<link>http://schwaerzl.de</link>
	<description>It was hard to write, so it MUST be hard to read!</description>
	<lastBuildDate>Mon, 08 Mar 2010 16:48:28 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>2 Bilder mit Python vergleichen</title>
		<link>http://schwaerzl.de/2009/12/2-bilder-mit-python-vergleichen/</link>
		<comments>http://schwaerzl.de/2009/12/2-bilder-mit-python-vergleichen/#comments</comments>
		<pubDate>Mon, 28 Dec 2009 19:52:51 +0000</pubDate>
		<dc:creator>Jam</dc:creator>
				<category><![CDATA[imaging]]></category>
		<category><![CDATA[librarys]]></category>
		<category><![CDATA[pil]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[compare]]></category>
		<category><![CDATA[difference]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[image]]></category>
		<category><![CDATA[imagechops]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://schwaerzl.de/?p=201</guid>
		<description><![CDATA[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 &#8216;True&#8216; zurück, andernfalls ein None. #!/usr/bin/env python # -*- coding: utf-8 -*- import ImageChops import Image &#160; def img_equal&#40;im1, im2&#41;: im1 = Image.open&#40;im1&#41; im2 = Image.open&#40;im2&#41; return ImageChops.difference&#40;im1, im2&#41;.getbbox&#40;&#41; is [...]]]></description>
			<content:encoded><![CDATA[<p>Hier ein kleines Tutorial wie man zwei Bilder mit Python bzw. mit <a href="http://www.pythonware.com/products/pil/" target="_blank">PIL (Python Imaging Library)</a> vergleicht. Sofern die zwei Bilder gleich sind geben wir &#8216;<strong>True</strong>&#8216; zurück, andernfalls ein <strong>None</strong>.</p>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;"><span style="color: #808080; font-style: italic;">#!/usr/bin/env python</span>
<span style="color: #808080; font-style: italic;"># -*- coding: utf-8 -*-</span>
<span style="color: #ff7700;font-weight:bold;">import</span> ImageChops
<span style="color: #ff7700;font-weight:bold;">import</span> Image
&nbsp;
<span style="color: #ff7700;font-weight:bold;">def</span> img_equal<span style="color: black;">&#40;</span>im1, im2<span style="color: black;">&#41;</span>:
    im1 = Image.<span style="color: #008000;">open</span><span style="color: black;">&#40;</span>im1<span style="color: black;">&#41;</span>
    im2 = Image.<span style="color: #008000;">open</span><span style="color: black;">&#40;</span>im2<span style="color: black;">&#41;</span>
    <span style="color: #ff7700;font-weight:bold;">return</span> ImageChops.<span style="color: black;">difference</span><span style="color: black;">&#40;</span>im1, im2<span style="color: black;">&#41;</span>.<span style="color: black;">getbbox</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span> <span style="color: #ff7700;font-weight:bold;">is</span> <span style="color: #008000;">None</span>
&nbsp;
<span style="color: #ff7700;font-weight:bold;">if</span> img_equal<span style="color: black;">&#40;</span><span style="color: #483d8b;">'/home/someshot.png'</span>, <span style="color: #483d8b;">'/home/anotherone.png'</span><span style="color: black;">&#41;</span>:
    <span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #483d8b;">'jepp - they are equal'</span>
<span style="color: #ff7700;font-weight:bold;">else</span>:
    <span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #483d8b;">'everything ok - keep on rockin'</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://schwaerzl.de/2009/12/2-bilder-mit-python-vergleichen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WOMBATcms</title>
		<link>http://schwaerzl.de/2009/08/wombatcms/</link>
		<comments>http://schwaerzl.de/2009/08/wombatcms/#comments</comments>
		<pubDate>Wed, 05 Aug 2009 18:44:00 +0000</pubDate>
		<dc:creator>Jam</dc:creator>
				<category><![CDATA[Content Management System]]></category>
		<category><![CDATA[Django]]></category>
		<category><![CDATA[wombat]]></category>
		<category><![CDATA[cms]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[wombatcms]]></category>

		<guid isPermaLink="false">http://schwaerzl.de/?p=70</guid>
		<description><![CDATA[Meine Person arbeitet ab sofort wieder an einem CMS. Ich habe es WOMBATcms getauft und es wird 100% python sein. Schon bald gibts ein paar Screenshots und eine Featurelist. Nähere Informationen zum CMS gibt es auf ohloh.net und unter wombatcms.de]]></description>
			<content:encoded><![CDATA[<p>Meine Person arbeitet ab sofort wieder an einem CMS. Ich habe es WOMBATcms getauft und es wird 100% python sein.</p>
<p><a href="https://www.ohloh.net/p/wombatcms/"><img class="aligncenter size-full wp-image-71" title="wombat" src="http://schwaerzl.de/wp-content/uploads/2009/08/wombat.jpg" alt="wombat" width="213" height="132" /></a>Schon bald gibts ein paar Screenshots und eine Featurelist. Nähere Informationen zum CMS gibt es auf <a href="https://www.ohloh.net/p/wombatcms/">ohloh.net</a> und unter <a href="http://www.wombatcms.de/">wombatcms.de</a></p>
<hr size="1" /><script src="http://www.ohloh.net/p/358855/widgets/project_basic_stats.js" type="text/javascript"></script></p>
]]></content:encoded>
			<wfw:commentRss>http://schwaerzl.de/2009/08/wombatcms/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Filter: Truncate Words</title>
		<link>http://schwaerzl.de/2007/10/filter-truncate-words/</link>
		<comments>http://schwaerzl.de/2007/10/filter-truncate-words/#comments</comments>
		<pubDate>Tue, 30 Oct 2007 18:48:00 +0000</pubDate>
		<dc:creator>Jam</dc:creator>
				<category><![CDATA[Django]]></category>
		<category><![CDATA[Filter]]></category>
		<category><![CDATA[Template]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[truncate]]></category>

		<guid isPermaLink="false">http://schwaerzl.de/?p=54</guid>
		<description><![CDATA[Wer kennt sie nicht. Die übermütigen Superkommentatoren in diversen Newspostings. Von &#8220;erst0r&#8221; bis &#8220;looooooooooooooooooooooooooooooooool&#8221; 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 [...]]]></description>
			<content:encoded><![CDATA[<p>Wer kennt sie nicht. Die übermütigen Superkommentatoren in diversen Newspostings. Von <em>&#8220;erst0r&#8221;</em> bis <em>&#8220;looooooooooooooooooooooooooooooooool&#8221;</em> 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.</p>
<p>Wir verwenden im Template einfach einen slice, z.B. so<strong><em> {{ comment.comment|slice:&#8221;:5&#8243; }}</em></strong></p>
<p>Tja, schön und gut&#8230;.aber was tut man wenn <em>&#8220;waaaaaaaaaaaaaaaaaaaaaaaaaas geeeeeeeeeeeht aaaaaab?!?!?&#8221;</em> gespamt wird? Bei einem slice von z.B. 5 Zeichen würde nur noch <em>&#8220;waaaa&#8230;&#8221;</em> dran stehen. Wollen wir das? Nö.</p>
<p>Also muss der eigene Filter her. Damit man nicht groß nachdenken muss, wie / wo / was &#8211; hier fertig von mir geschrieben <img src='http://schwaerzl.de/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;"><span style="color: #ff7700;font-weight:bold;">from</span> django <span style="color: #ff7700;font-weight:bold;">import</span> template
register = template.<span style="color: black;">Library</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
&nbsp;
@register.<span style="color: #008000;">filter</span>
<span style="color: #ff7700;font-weight:bold;">def</span> truncatewords<span style="color: black;">&#40;</span>s, num<span style="color: black;">&#41;</span>:
<span style="color: #483d8b;">&quot;&quot;&quot;
Truncates a word after a given number of chars
Argument: Number of chars to truncate after
&quot;&quot;&quot;</span>
    length = <span style="color: #008000;">int</span><span style="color: black;">&#40;</span>num<span style="color: black;">&#41;</span>
    <span style="color: #dc143c;">string</span> = <span style="color: black;">&#91;</span><span style="color: black;">&#93;</span>
    <span style="color: #ff7700;font-weight:bold;">for</span> word <span style="color: #ff7700;font-weight:bold;">in</span> s.<span style="color: black;">split</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>:
        <span style="color: #ff7700;font-weight:bold;">if</span> <span style="color: #008000;">len</span><span style="color: black;">&#40;</span>word<span style="color: black;">&#41;</span> <span style="color: #66cc66;">&amp;</span>gt<span style="color: #66cc66;">;</span> length:
            <span style="color: #dc143c;">string</span>.<span style="color: black;">append</span><span style="color: black;">&#40;</span>word<span style="color: black;">&#91;</span>:length<span style="color: black;">&#93;</span>+<span style="color: #483d8b;">'...'</span><span style="color: black;">&#41;</span>
        <span style="color: #ff7700;font-weight:bold;">else</span>:
            <span style="color: #dc143c;">string</span>.<span style="color: black;">append</span><span style="color: black;">&#40;</span>word<span style="color: black;">&#41;</span>
    <span style="color: #ff7700;font-weight:bold;">return</span> u<span style="color: #483d8b;">' '</span>.<span style="color: black;">join</span><span style="color: black;">&#40;</span><span style="color: #dc143c;">string</span><span style="color: black;">&#41;</span></pre></div></div>

<p>Was geschieht nun, wenn man den Filter einsetzt? Der Filter schneidet bei jedem Wort die angegebene Anzahl ab, also wird aus unserem oben genannten &#8220;Was geht ab&#8221; ein <em>&#8220;waaaa&#8230; geeee&#8230; aaaaa&#8230;&#8221;</em>. Ist zwar auch nicht die Krönung der Schöpfung aber immerhin, ne? <img src='http://schwaerzl.de/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>In diesem Sinne &#8211; viel Spaß damit.</p>
]]></content:encoded>
			<wfw:commentRss>http://schwaerzl.de/2007/10/filter-truncate-words/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
