<?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>[digital:meditation] &#187; graphics</title>
	<atom:link href="http://dm.zimmer428.net/category/graphics/feed/" rel="self" type="application/rss+xml" />
	<link>http://dm.zimmer428.net</link>
	<description>...</description>
	<lastBuildDate>Wed, 16 Jun 2010 06:31:54 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>latches</title>
		<link>http://dm.zimmer428.net/2010/05/latches/</link>
		<comments>http://dm.zimmer428.net/2010/05/latches/#comments</comments>
		<pubDate>Wed, 26 May 2010 19:30:56 +0000</pubDate>
		<dc:creator>kr</dc:creator>
				<category><![CDATA[graphics]]></category>
		<category><![CDATA[images]]></category>

		<guid isPermaLink="false">http://dm.zimmer428.net/?p=720</guid>
		<description><![CDATA[Soundtrack: INBloom &#8211; &#8216;Underskin: Mechanical Ritual (off the &#8216;Cloud Trails&#8217; album). More pale, noisy machinery, trying to explore sort of a concept of &#8220;functional core&#8221; in abandoned technical facilities sure to have done something meaningful before&#8230;
]]></description>
			<content:encoded><![CDATA[<p>Soundtrack: <a href="http://www.jamendo.com/de/album/50001">INBloom &#8211; &#8216;Underskin: Mechanical Ritual</a> (off the &#8216;Cloud Trails&#8217; album). More pale, noisy machinery, trying to explore sort of a concept of &#8220;functional core&#8221; in abandoned technical facilities sure to have done something meaningful before&#8230;</p>

<a href="http://dm.zimmer428.net/wp-content/gallery/discordia/latches.jpg" title="Soundtrack: &amp;lt;a href=&amp;quot;http://www.jamendo.com/de/album/50001&amp;quot;&amp;gt;INBloom - &amp;#039;Underskin: Mechanical Ritual&amp;lt;/a&amp;gt; (off the incredible &amp;#039;Cloud Trails&amp;#039; album)" class="shutterset_singlepic39" >
	<img class="ngg-singlepic" src="http://dm.zimmer428.net/wp-content/gallery/cache/39__320x240_latches.jpg" alt="latches" title="latches" />
</a>

]]></content:encoded>
			<wfw:commentRss>http://dm.zimmer428.net/2010/05/latches/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>alight</title>
		<link>http://dm.zimmer428.net/2010/02/alight/</link>
		<comments>http://dm.zimmer428.net/2010/02/alight/#comments</comments>
		<pubDate>Wed, 17 Feb 2010 21:42:56 +0000</pubDate>
		<dc:creator>kr</dc:creator>
				<category><![CDATA[english]]></category>
		<category><![CDATA[graphics]]></category>
		<category><![CDATA[images]]></category>
		<category><![CDATA[digitalart]]></category>
		<category><![CDATA[gimp]]></category>
		<category><![CDATA[imaging]]></category>

		<guid isPermaLink="false">http://dm.zimmer428.net/?p=679</guid>
		<description><![CDATA[Soundtrack: Kalte &#8211; &#8220;Mariana Arc&#8221;. A moment of quietness in a place where light seems to be percieved in a completely other way than, say, on a bright sunny day, under a sky wide open.

]]></description>
			<content:encoded><![CDATA[<p>Soundtrack: <a href="http://www.stasisfield.com/releases/year06/sf-6010.html">Kalte &#8211; &#8220;Mariana Arc&#8221;</a>. A moment of quietness in a place where light seems to be percieved in a completely other way than, say, on a bright sunny day, under a sky wide open.</p>
<p><a class="shutterset_" href='http://dm.zimmer428.net/wp-content/gallery/discordia/alight.jpg' title='Soundtrack: &lt;a href=&quot;http://www.stasisfield.com/releases/year06/sf-6010.html&quot;&gt;Kalte - &quot;Mariana Arc&quot;&lt;/a&gt; ... of some light and some darkness... '><img src='http://dm.zimmer428.net/wp-content/gallery/discordia/thumbs/thumbs_alight.jpg' alt='subliminal/change' class='ngg-singlepic ngg-center' /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://dm.zimmer428.net/2010/02/alight/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>subliminal/change</title>
		<link>http://dm.zimmer428.net/2010/01/subliminalchange/</link>
		<comments>http://dm.zimmer428.net/2010/01/subliminalchange/#comments</comments>
		<pubDate>Tue, 19 Jan 2010 08:00:53 +0000</pubDate>
		<dc:creator>kr</dc:creator>
				<category><![CDATA[art]]></category>
		<category><![CDATA[graphics]]></category>
		<category><![CDATA[thoughts]]></category>

		<guid isPermaLink="false">http://dm.zimmer428.net/?p=622</guid>
		<description><![CDATA[Listening to extensive ambient soundscapes like these by Daina Dieva is an interesting experience while in public transport (tram, bus) with open headphones: In the end, the music is likely to merge with the sounds and noises of your environment nearby, generating something akin to an &#8220;acoustically augmented reality&#8221;, intensifying both experiencing the music and [...]]]></description>
			<content:encoded><![CDATA[<p>Listening to extensive ambient soundscapes like these by <a href="http://www.myspace.com/daina_dieva">Daina Dieva</a> is an interesting experience while in public transport (tram, bus) with open headphones: In the end, the music is likely to merge with the sounds and noises of your environment nearby, generating something akin to an &#8220;acoustically augmented reality&#8221;, intensifying both experiencing the music <em>and</em> experiencing the very situation&#8230; Somehow, things feel &#8220;familiar&#8221; because they feel all the same &#8211; it&#8217;s the same city every day, the same trip, the same places to pass by, the same views looking out through the steamy windows&#8230; and yet it is different: Different times of year, different faces, different people, different moods. Change all over, and yet things feel &#8220;constant&#8221;, maybe because &#8220;change&#8221; is perceived as an integral part of living in a city? </p>
<p><a class="shutterset_" href='http://dm.zimmer428.net/wp-content/gallery/discordia/subliminal.jpg' title='Soundtrack: &lt;a href=&quot;http://www.archive.org/details/ca283_dds&quot;&gt;Daina Dieva, Svart1 - &quot;Incubi Succubi&quot;&lt;/a&gt; - travelling, in some way... '><img src='http://dm.zimmer428.net/wp-content/gallery/discordia/thumbs/thumbs_subliminal.jpg' alt='subliminal/change' class='ngg-singlepic ngg-center' /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://dm.zimmer428.net/2010/01/subliminalchange/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>winter comes</title>
		<link>http://dm.zimmer428.net/2009/12/winter-comes/</link>
		<comments>http://dm.zimmer428.net/2009/12/winter-comes/#comments</comments>
		<pubDate>Fri, 18 Dec 2009 11:50:00 +0000</pubDate>
		<dc:creator>kr</dc:creator>
				<category><![CDATA[graphics]]></category>
		<category><![CDATA[images]]></category>

		<guid isPermaLink="false">http://dm.zimmer428.net/?p=607</guid>
		<description><![CDATA[
Soundtrack: Covenant &#8211; &#8220;Winter Comes&#8221;
&#8230; seeing the snow quietly cover the world surrounding our office building&#8230;
]]></description>
			<content:encoded><![CDATA[<p><a class="shutterset_" href='http://dm.zimmer428.net/wp-content/gallery/discordia/winter.jpg' title='Soundtrack: Covenant - &quot;Winter Comes&quot;'><img src='http://dm.zimmer428.net/wp-content/gallery/discordia/thumbs/thumbs_winter.jpg' alt='winter comes' class='ngg-singlepic ngg-center' /></a></p>
<p>Soundtrack: Covenant &#8211; &#8220;Winter Comes&#8221;</p>
<p>&#8230; seeing the snow quietly cover the world surrounding our office building&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://dm.zimmer428.net/2009/12/winter-comes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>c&#8217;t-&#8221;Digitale Fotografie&#8221;: Lesestoff für Gimp-Freunde</title>
		<link>http://dm.zimmer428.net/2008/12/ct-digitale-fotografie-lesestoff-fur-gimp-freunde/</link>
		<comments>http://dm.zimmer428.net/2008/12/ct-digitale-fotografie-lesestoff-fur-gimp-freunde/#comments</comments>
		<pubDate>Fri, 05 Dec 2008 11:00:32 +0000</pubDate>
		<dc:creator>kr</dc:creator>
				<category><![CDATA[german]]></category>
		<category><![CDATA[graphics]]></category>
		<category><![CDATA[news]]></category>
		<category><![CDATA[readings]]></category>

		<guid isPermaLink="false">http://dm.zimmer428.net/index.php/archives/420</guid>
		<description><![CDATA[Für all jene, die noch nicht wissen, mit welcher Lektüre sie das Wochenende zubringen mögen: Das dieser Tage veröffentlichte c&#8217;t special 01/2009: Digitale Fotografie begrüßt den Leser mit der mutigen Schlagzeile &#8220;GIMP statt Photoshop&#8221;, und ein Blick in das Heft bzw. auf die DVD beweist: Die These ist Programm. Neben einigen anderen (für mich) mehr [...]]]></description>
			<content:encoded><![CDATA[<p>Für all jene, die noch nicht wissen, mit welcher Lektüre sie das Wochenende zubringen mögen: Das dieser Tage veröffentlichte <a href="http://www.heise.de/kiosk/special/ct/08/08/">c&#8217;t special 01/2009: Digitale Fotografie</a> begrüßt den Leser mit der mutigen Schlagzeile &#8220;GIMP statt Photoshop&#8221;, und ein Blick in das Heft bzw. auf die DVD beweist: Die These ist Programm. Neben einigen anderen (für mich) mehr oder weniger interessanten Themen (den Artikel über Kunst mit Handy-Fotos finde ich nach wie vor allerdings genial) widmet sich das Magazin in erfreulich großem Umfang verschiedenen Aspekten der Bildbe- und -verarbeitung mit <a href="http://www.gimp.org">dem GIMP</a>, wobei die Artikel (fast?) durchweg aus der Feder von <a href="http://www.newhouse.at/">Bettina K. Lechner</a> stammen, die es auch schon zu mehreren herausragenden Buch- und Videoveröffentlichung zu dieser Software gebracht hat. Und für all jene, die die Artikel eher ungern lesen wollen, bietet die <a href="http://www.heise.de/kiosk/special/ct/08/08/programme.shtml">DVD, die dem Heft beiliegt</a>, noch zwei mehrstündige Video-Tutorials für &#8220;Einsteiger&#8221; bzw. &#8220;Fortgeschrittene&#8221;. Für Gimp-Einsteiger und -nutzer eine durchaus lohnende Investition&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://dm.zimmer428.net/2008/12/ct-digitale-fotografie-lesestoff-fur-gimp-freunde/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>gimp 2.6: re-armed and reloaded</title>
		<link>http://dm.zimmer428.net/2008/10/gimp-26-re-armed-and-reloaded/</link>
		<comments>http://dm.zimmer428.net/2008/10/gimp-26-re-armed-and-reloaded/#comments</comments>
		<pubDate>Thu, 02 Oct 2008 07:23:01 +0000</pubDate>
		<dc:creator>kr</dc:creator>
				<category><![CDATA[english]]></category>
		<category><![CDATA[graphics]]></category>
		<category><![CDATA[news]]></category>

		<guid isPermaLink="false">http://dm.zimmer428.net/index.php/archives/403</guid>
		<description><![CDATA[Congratulations, folks: On October 01, 2008, gimp.org has announced the availability of release 2.6 of the &#8220;GNU Image Manipulation Program&#8221; aka Gimp&#8221;, coming with an interesting list of features including a couple of UI changes (eventually addressing certain complaints about Gimp usability being next to poor &#8211; which personally I never really understood so far&#8230; [...]]]></description>
			<content:encoded><![CDATA[<p>Congratulations, folks: On October 01, 2008, <a href="http://gimp.org/">gimp.org</a> has announced the availability of release 2.6 of the &#8220;GNU Image Manipulation Program&#8221; aka Gimp&#8221;, coming with an <a href="http://gimp.org/release-notes/gimp-2.6.html">interesting list of features</a> including a couple of UI changes (eventually addressing certain complaints about Gimp usability being next to poor &#8211; which personally I never really understood so far&#8230; :>). Ubuntu 8.04 packages are <a href="http://meetthegimp.org/gimp-26-as-promised-released-on-september-31/">available at meetthegimp.org</a>, binaries for &#8220;that other platform&#8221; might be obtained at <a href="http://gimp-win.sourceforge.net/stable.html">gimp-win.sourceforge.net</a>. Time to get some tests done, I guess&#8230; :)</p>
]]></content:encoded>
			<wfw:commentRss>http://dm.zimmer428.net/2008/10/gimp-26-re-armed-and-reloaded/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Gestaltung für Anfänger</title>
		<link>http://dm.zimmer428.net/2005/12/gestaltung-fur-anfanger/</link>
		<comments>http://dm.zimmer428.net/2005/12/gestaltung-fur-anfanger/#comments</comments>
		<pubDate>Mon, 26 Dec 2005 07:24:50 +0000</pubDate>
		<dc:creator>kr</dc:creator>
				<category><![CDATA[german]]></category>
		<category><![CDATA[graphics]]></category>
		<category><![CDATA[readings]]></category>

		<guid isPermaLink="false">http://dm.zimmer428.net/index.php/archives/80</guid>
		<description><![CDATA[Nach ein paar Jahren &#8220;online&#8221; und vor dem Rechner hat man sicher eine gewisse Fertigkeit erworben im Umgang mit (X)HTML, CSS und all den anderen Technologien, derer es so bedarf, um Web-Sites praktisch realisieren zu können. Ärgerlicherweise habe ich in letzter Zeit immer häufiger gemerkt, daß das Problem gar nicht in der Technik, sondern andernorts [...]]]></description>
			<content:encoded><![CDATA[<p>Nach ein paar Jahren &#8220;online&#8221; und vor dem Rechner hat man sicher eine gewisse Fertigkeit erworben im Umgang mit (X)HTML, CSS und all den anderen Technologien, derer es so bedarf, um Web-Sites praktisch realisieren zu können. Ärgerlicherweise habe ich in letzter Zeit immer häufiger gemerkt, daß das Problem gar nicht in der Technik, sondern andernorts liegt, genauer in der optisch ansprechenden, schlüssigen und dem Inhalt entsprechenden Gestaltung dessen, was man eigentlich zu präsentieren gedenkt. Dort fehlt mir als grafisch fast völlig unbedarftem Zeitgenossen in vielerlei Hinsicht jegliches Wissensfundament, passiert das Gros dessen, was ich (etwa unter Verwendung des <a href="http://www.gimp.org">Gimp</a>) tue, auf Basis von &#8220;trial-and-error&#8221; und unter dem Vorsatz, durch Probieren Resultate zu erzeugen, die einem selbst gefallen.</p>
<p>Nichtsdestotrotz hat es mich geärgert, auf diesem Gebiet eigentlich immer nur im Dunkeln zu tappen, und somit lag der Griff zu einem Buch nahe, um erst einmal einen groben Einstieg in das ganze Themengebiet grafischer Gestaltung zu erlangen. Mittlerweile liegt <a href="http://www.rowohlt.de/buch/Pina_Lewandowsky_Visuelles_Gestalten_mit_dem_Computer.7106.html">&#8220;Visuelles Gestalten mit dem Computer</a>&#8221; auf meinem kleinen Schreibtisch, und nachdem mich nach anfänglichem Überfliegen irritiert hat, daß das Buch nicht wie andere (auf den ersten Blick ähnlich gelagerte) Veröffentlichungen auf jeder Seite drei, vier Bildschirmfotos prominenter Programme und im Back-Cover eine CD-ROM mit Vollversionen belangloser Tools mitbringt, bin ich mittlerweile doch von der Sinnhaltigkeit des Konzeptes überzeugt: Die beiden Autorinnen <a href="http://www.pinalewandowsky.de/anfang.htm">Pina Lewandowsky</a> und Francis Zeischegg führen den Leser auf reichlich 250 Seiten in die Materie ein in einer Art und Weise, die sehr viel grundlegender ist, als der Titel vielleicht vermuten lassen könnte. Und so sieht man sich plötzlich konfrontiert mit Ausführungen zu Punkten, Linien, Flächen, Strukturen, bekommt Wissen vermittelt über Spannungen, die Wirkung von Farben, Bildorganisation, &#8230; . Aufgelockert durch den Kapiteln vorangestellte Werke von Künstlern zur &#8220;Motivation&#8221; und etlichen kleineren und größeren Übungen (die nicht mal alle die Nutzung eines Computers erfordern) sowie versehen mit einem umfangreichen Literaturverzeichnis (für all jene, die Muße und Zeit haben, sich noch tiefer in die Materie hineinzulesen) ist dies insgesamt ein Buch, welches man schon vor Jahren hätte kaufen sollen, auch wenn der Weg bis zum Ende, der Weg der Erkenntnisse in die Praxis reichlich lang zu werden verspricht&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://dm.zimmer428.net/2005/12/gestaltung-fur-anfanger/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Gimp Users Dresden?</title>
		<link>http://dm.zimmer428.net/2005/11/gimp-users-dresden/</link>
		<comments>http://dm.zimmer428.net/2005/11/gimp-users-dresden/#comments</comments>
		<pubDate>Sun, 06 Nov 2005 11:40:54 +0000</pubDate>
		<dc:creator>kr</dc:creator>
				<category><![CDATA[german]]></category>
		<category><![CDATA[graphics]]></category>

		<guid isPermaLink="false">http://dm.zimmer428.net/index.php/archives/41</guid>
		<description><![CDATA[Nachdem ich schon seit Jahren exzessiv Zeit mit dem Gimp verbringe, gleichermaßen die Möglichkeiten dieser Grafik-Software mehr und mehr zu schätzen lerne und sehe, daß mittels Script-Fu, Python undsoweiterundsofort neben den &#8220;Standard&#8221;-Features noch sehr viel mehr machbar ist, als dies mit manch anderen ähnlich gelagerten Anwendungen geht, scheint mir&#8217;s eine sinnvolle Idee, so etwas wie [...]]]></description>
			<content:encoded><![CDATA[<p>Nachdem ich schon seit Jahren exzessiv Zeit mit dem <a href="http://www.gimp.org">Gimp</a> verbringe, gleichermaßen die Möglichkeiten dieser Grafik-Software mehr und mehr zu schätzen lerne und sehe, daß mittels Script-Fu, Python undsoweiterundsofort neben den &#8220;Standard&#8221;-Features noch sehr viel mehr machbar ist, als dies mit manch anderen ähnlich gelagerten Anwendungen geht, scheint mir&#8217;s eine sinnvolle Idee, so etwas wie eine (halbwegs?) lokale User-Group für diese Software in Gang zu bringen, um den Menschen die vielen schönen Möglichkeiten von Gimp zu zeigen, Ressourcen dazu zu sammeln (Skripte, Dokumentation, Links, &#8230;) oder einfach nur Kontakt zwischen jenen herzustellen, die sich wie ich mit Gimp versuchen, ihre Fähigkeiten erweitern oder tauschen wollen&#8230;</p>
<p>Mangels Zeit wird das ganze langsam angehen; die nächsten Wochen werde ich versuchen, ein kleines Wiki aufzusetzen und zu sehen, was daraus wird. Interessierte sind schonmal eingeladen, sich <a href="mailto:kawazu@zimmer428.net?subject=gimp">kurz zu melden</a> &#8211; ich bin neugierig auf Feedback. :)</p>
]]></content:encoded>
			<wfw:commentRss>http://dm.zimmer428.net/2005/11/gimp-users-dresden/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>gimp hacks: writing plugins using python</title>
		<link>http://dm.zimmer428.net/2005/05/gimp-hacks-writing-plugins-using-python/</link>
		<comments>http://dm.zimmer428.net/2005/05/gimp-hacks-writing-plugins-using-python/#comments</comments>
		<pubDate>Sun, 22 May 2005 08:42:47 +0000</pubDate>
		<dc:creator>kr</dc:creator>
				<category><![CDATA[english]]></category>
		<category><![CDATA[graphics]]></category>

		<guid isPermaLink="false">http://dm.zimmer428.net/?p=15</guid>
		<description><![CDATA[One of many amazing features that The Gimp is providing is the capability of being extensible using quite an amount of languages which aren&#8217;t too unlikely to be around on a GNU/Linux or Unix environment where Gimp mainly is to be found. Even though I don&#8217;t really often reach the point where standard Gimp features [...]]]></description>
			<content:encoded><![CDATA[<p>One of many amazing features that <a href="http://www.gimp.org">The Gimp</a> is providing is the capability of being extensible using quite an amount of languages which aren&#8217;t too unlikely to be around on a GNU/Linux or Unix environment where Gimp mainly is to be found. Even though I don&#8217;t really often reach the point where standard Gimp features don&#8217;t suffice anymore, the idea of being able to build custom extensions at least for automating certain frequently appearing tasks is tempting. That&#8217;s why, after all, I spent some moments figuring out how to exactly get that done&#8230; <br />
<span id="more-15"></span></p>
<h2>What to say:</h2>
<ul>
<li>You should, of course, have current installations of Gimp and Python handy and usable. Mine is Gimp 2.2.2 and Python 2.3 atop Debian sid. Depending on your distribution or operating system, you might need to explicitely install the Python package for Gimp (pygimp or gimp-python on Debian) as it may not be installed by default.</li>
<li>It&#8217;s a good idea to have some basic understanding of how Python programming is like, even though you will find that using Python to build Gimp plug-ins is pretty straightforward once you figured out a few things.</li>
<li>You should, also of course, have gone through some basic work with the Gimp to know what it is able to do and how you get some things done. This way, it will be way easier for you at least to automate some reoccuring work steps using a script..</li>
<li>It really helps, additionally, to have documentation of pygimp and the Gimp itself installed and viewable. Those you will need quite often, especially while getting started, so having them around is going to save you some troublesome minutes&#8230;</li>
</ul>
<h2>Quick Start &#8211; &#8220;Hello Gimp&#8221;</h2>
<p>To easily get started, let&#8217;s learn to do a _very_ simple plugin in the tradition of possibly all the books on programming this world has to offer: This short piece of code shall make Gimp say &#8220;Hello Gimp&#8221; whenever the user desires it to do so:</p>
<p><code><br />
---snip---</p>
<p>#!/usr/bin/env python<br />
from gimpfu import *</p>
<p>def hellogimp(): </p>
<p>&nbsp;&nbsp;&nbsp;print "Hello Gimp!"</p>
<p>register(<br />
	&nbsp;&nbsp;&nbsp;"python_fu_hellogimp",				#1 <br />
        &nbsp;&nbsp;&nbsp;"HelloWorld plugin for Gimp",<br />
        &nbsp;&nbsp;&nbsp;"HelloWorld plugin for Gimp",<br />
        &nbsp;&nbsp;&nbsp;"Kristian Rink",</p>
<p>        &nbsp;&nbsp;&nbsp;"Kristian Rink",<br />
        &nbsp;&nbsp;&nbsp;"2005",<br />
        &nbsp;&nbsp;&nbsp;"&lt;Toolbox&gt;/Xtns/Python-Fu/z428/HelloGimp",	#2<br />
        &nbsp;&nbsp;&nbsp;"RGB*,GRAY*",					#3<br />
        &nbsp;&nbsp;&nbsp;[],</p>
<p>        &nbsp;&nbsp;&nbsp;[],<br />
       &nbsp;&nbsp;&nbsp;hellogimp)					#4<br />
main()</p>
<p>---snip---<br />
</code></p>
<p>That&#8217;s already about it. Put this to a meaningfully named file into your /.gimp(Version)/plug-ins/ folder and mark it executable. Then, open a new terminal and, being there, start the Gimp (probably using the &#8220;gimp&#8221; command). It is essential that you start it this way because the &#8220;Hello World&#8221; output will go to the terminal and so be lost if you start Gimp using, for example, your menu system.</p>
<p>Once then the Gimp is up and running, check the &#8220;Xtns&#8221; menu in its toolbox, go to &#8220;Python-Fu&#8221;, then to &#8220;z428&#8221;, select &#8220;HelloGimp&#8221; and &#8211; be amazed to see a &#8220;Hello Gimp&#8221; written to the terminal you used to start Gimp. Congratulations, you just added (though quite useless) functionality to the Gimp using pygimp! Now this is a good place to mention that, in case something went wrong and your Gimp is not outputting &#8220;Hello Gimp&#8221; but just an error and a python stack trace, you can re-edit the plugin code, write it and execute it from within the Gimp without restarting the application itself &#8211; this only becomes necessary whenever you messing around with the register() function and, so, the interface of the plugin function.</p>
<p>Let&#8217;s take a short look at what we got, by now:</p>
<ul>
<li>First of all, you need to start your plug-in the way you&#8217;d start each other python script, too, by specifying the #! followed by the path to your python interpreter binary.</li>
<li>Of course, then, you have to make sure your code has the Gimp/python connectivity available. Do that by importing things from the gimpfu module.</li>
<li>Then, a small function to actually do something is generated. In this example, though, the only thing it does is to print out the string &#8220;Hello Gimp&#8221;&#8230; Of course later you might want to make up more useful functions, same as you&#8217;re able to put a couple of such functions into one plugin file.</li>
<li>Then, you call &#8220;register()&#8221; for your function to make it known to the Gimp. The parameters it takes are in length explained in the pygimp documentation; some, however, are of special interest:
<ul>
<li>#1 is the name that function will have when registered with the Gimp. This is how other plugins same as the Gimp itself will access your code, same as you will find it listed in the Gimp&#8217;s procedure browser.</li>
<li>#2 specifies where in the menu structure the entry for your plugin should be created.</li>
<li>#3 gives a hint which sorts of pictures (here: RGB-colored and grayscale ones) the plugin may operate on</li>
<li>#4, finally, is the name of the function to register; in this example, this is the hellogimp() we defined a few lines earlier..</li>
</ul>
</li>
<li>Finally, you have to call main() to actually get the plugin started. In there, everything will happen that is necessary to get your plugin running, to possibly display a user interface, to call functions when needed and so on.</li>
</ul>
<p>If all went fine, besides seeing the &#8220;Hello Gimp&#8221; string you&#8217;ll also be able to gather information about the presence of your plug-in in several places within Gimp:</p>
<ul>
<li>In &#8220;Xtns&#8221; menu of the Gimp toolbox you&#8217;ll find the <em>Plugin Browser</em> which enables you to look at what plugins your Gimp currently knows about. Simply enter &#8220;Hello&#8221; into the search field and see what happens&#8230;</li>
<li>Also found in &#8220;Xtns&#8221; and way more crucial for your future work of writing Gimp plugins is the <em>Procedure Browser</em> where you can find information about, well, procedures that are available (read: callable) within your Gimp installation. These include both core Gimp functionality (enter &#8220;gimp_&#8221; into the search field and see) and stuff provided by plugins, scripts and the like. These functions you&#8217;re likely to use while creating plugins of your own. Enter &#8220;python_&#8221; into the search field to see a list of all python-fu functions, including python_fu_hellogimp&#8230;</li>
</ul>
<h2>A more useful example</h2>
<p>An effect I am frequently using for blurring images is done more or less like this:</p>
<ul>
<li>Create a copy of a picture (which basically is a copy of the pictures background layer) and desaturate it.</li>
<li>Do a Gaussian blur on that copied layer.</li>
<li>Switch its overlay mode to &#8220;addition&#8221;</li>
<li>Flatten the image.</li>
</ul>
<p>Since this is pretty straightforward and works without a lot of tuning or user interaction, it&#8217;s possibly a good thing to get started with while creating a first plugin that actually _does_ something. Here we go:</p>
<p><code><br />
---snip---</p>
<p>#!/usr/bin/env python<br />
from gimpfu import *</p>
<p>def mergesofned(cimage,clayer):<br />
	&nbsp;&nbsp;&nbsp;worklayer=clayer.copy()</p>
<p>	&nbsp;&nbsp;&nbsp;worklayer.name="BLUR"<br />
	&nbsp;&nbsp;&nbsp;worklayer.mode=ADDITION_MODE<br />
	&nbsp;&nbsp;&nbsp;cimage.add_layer(worklayer,0)<br />
	&nbsp;&nbsp;&nbsp;pdb.gimp_desaturate(worklayer)<br />	<br />
	&nbsp;&nbsp;&nbsp;pdb.plug_in_gauss_rle(cimage,worklayer, 10, 15, 15)<br />
	&nbsp;&nbsp;&nbsp;myimage.flatten()</p>
<p>register(<br />
	&nbsp;&nbsp;&nbsp;"python_fu_mergesofned",<br />
	&nbsp;&nbsp;&nbsp;"merge picture with a blurred version of itself",<br />
	&nbsp;&nbsp;&nbsp;"merge picture with a blurred version of itself",<br />
	&nbsp;&nbsp;&nbsp;"Kristian Rink",<br />
	&nbsp;&nbsp;&nbsp;"Kristian Rink",</p>
<p>	&nbsp;&nbsp;&nbsp;"2005",<br />
	&nbsp;&nbsp;&nbsp;"&lt;Image&gt;/Python-Fu/z428/LayeredSoftness",<br />
	&nbsp;&nbsp;&nbsp;"RGB*,GRAY*",<br />
	&nbsp;&nbsp;&nbsp;[],<br />
	&nbsp;&nbsp;&nbsp;[],</p>
<p>	&nbsp;&nbsp;&nbsp;mergesofned)</p>
<p>main()<br />
---snip---<br />
</code></p>
<p>You probably couldn&#8217;t help noticing that it&#8217;s indeed a little more complicated than the HelloGimp example. Also let&#8217;s go through this one step by step:</p>
<ul>
<li>Overally and at first, I hope you see the base structure of importing gimpfu, defining a plugin function, registering it and calling main(), like in the previous example.</li>
<li>You also might see that the working function in this one, mergesofned(cimage,clayer), requires two parameters (cimage = the image currently working, clayer = the currently active layer). By now, all you need to know is that they&#8217;re provided to your function by the Gimp and the python layer that is including your plugin into it.</li>
<li>You might have noticed that &#8220;cimage&#8221;, &#8220;cylayer&#8221; and &#8220;worklayer&#8221; (copy of clayer that is created within the mergesofned() function) are treated as objects for example by calling member functions (copy()) or setting properties (mode). These objects (image, layer, channel, drawable, tile, pixel region) are provided by pygimp and extensively covered in its documentation.</li>
<li>Furthermore, there are two calls (gimp_desaturate() and plug_in_gauss_rle()) that might remind you of what you saw while using the Gimp Procedure Browser. Indeed, here you see how to access those procedures from inside a custom plugin: There&#8217;s an object pdb (procedure database) which you use to access any sort of Gimp-given functionality by specifying the name of the function (which you find in the procedure database using the Procedure Browser) and parameters it neesdd (which you also will learn about using the Procedure Browser).
</li>
<li>If, by now, you look at the mergesofned() function and compare this with the workflow for the desired effect pointed out before, you&#8217;ll see that the script is pretty self-explaining, leaving aside that you have to find out the names for the functions to use instead of manually calling the required functionality.</li>
<li>Finally, you see that this time the plugin is not placed within the Toolbox menu but within the menu you see inside a Gimp image window, and, right there, inside Python-Fu -> z428. In this situation, this is useful because the plugin is about to operate on a given picture, anyhow, so there&#8217;s no need to have it callable without having any image opened (like we did with HelloGimp).</li>
</ul>
<p>So overally, we&#8217;re finished pretty quickly. Did it hurt? Good, no matter whether the answer was &#8220;yes&#8221; or &#8220;no&#8221;. :] Seriously: You just read how to create basic plug-ins for the Gimp using Python and pygimp. There are lots and lots of things you can do with that, and lots and lots of things that might be interesting to show, but those all are pretty straightforward once you got the basic idea.</p>
<h2>Where to go from here?</h2>
<p>
If you&#8217;re right now about to get something of your own to work with Gimp, you should&#8230;</p>
<ul>
<li>&#8230; have the pygimp documentation handy (and possibly read it) to learn more about what can be done with the objects provided by it, like, for example, to create new images, create new layers and all such.</li>
<li>&#8230; read through the Python library reference to see what features Python does provide and how to use some of them with the Gimp.</li>
<li>&#8230; have a few looks at the Procedure Browser of Gimp to learn about its core functionalities and how to use them.</li>
<li>&#8230; play with functions that require parameters specified in register() to see how pygimp automatically creates a GUI asking the user to specify those.</li>
</ul>
<p>So good luck for projects of your own using pygimp. As time goes by, maybe I will post more ideas and examples of how to use pygimp for certain things; meanwhile, feel free to post comments, recommendations, hints and rants as you feel appropriate.</p>
<p>Links:</p>
<p><a href="http://www.jamesh.id.au/software/pygimp/">pygimp</a><br />
<a href="http://www.gimp.org">the Gimp</a><br />
<a href="http://www.python.org">Python</a></p>
]]></content:encoded>
			<wfw:commentRss>http://dm.zimmer428.net/2005/05/gimp-hacks-writing-plugins-using-python/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
