<?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>IT Essentials Directorgate &#187; ruby</title>
	<atom:link href="http://blog.directorgate.com/index.php/key/ruby/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.directorgate.com</link>
	<description>Tutorials und Hilfe rund um die IT, den Mac und das iPhone</description>
	<lastBuildDate>Tue, 06 Sep 2011 18:10:26 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Schnelle, einfache und kostenlose Bildbearbeitung: ImageMagick und Rmagick (Ruby)</title>
		<link>http://blog.directorgate.com/2009/install-imagemagick-rmagick-ruby-leopard/</link>
		<comments>http://blog.directorgate.com/2009/install-imagemagick-rmagick-ruby-leopard/#comments</comments>
		<pubDate>Sun, 01 Feb 2009 17:27:22 +0000</pubDate>
		<dc:creator>Andreas</dc:creator>
				<category><![CDATA[Entwicklung]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[DeveloperTools]]></category>
		<category><![CDATA[ImageMagick]]></category>
		<category><![CDATA[RMagick]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://blog.directorgate.com/?p=321</guid>
		<description><![CDATA[Jeder, der sich in diesem Artikel nun die Vorstellung eines Adobe Photoshop Konkurrenten erhofft, darf sich getrost dem nächsten Artikel zuwenden. Mit ImageMagick und der passenden Schnittstelle zu Ruby mit dem Namen RMagick kann man auf einfache Art und Weise Bilder mittels eines Scripts bearbeiten. Was ImageMagick unter bearbeiten versteht, führt folgende Liste auf: Format [...]]]></description>
			<content:encoded><![CDATA[<p>Jeder, der sich in diesem Artikel nun die Vorstellung eines Adobe Photoshop Konkurrenten erhofft, darf sich getrost dem nächsten Artikel zuwenden. Mit <a title="ImageMagick" href="http://www.imagemagick.org/script/index.php" target="_blank">ImageMagick</a> und der passenden Schnittstelle zu Ruby mit dem Namen <a title="RMagick" href="http://rmagick.rubyforge.org/" target="_blank">RMagick </a>kann man auf einfache Art und Weise Bilder mittels eines Scripts bearbeiten. Was ImageMagick unter bearbeiten versteht, führt folgende Liste auf:</p>
<div style="font-size:10px; line-height:12px; background-color:#f4f4f4; padding:10px; text-align:left;">
<ul>
<li><a href="http://www.imagemagick.org/script/convert.php">Format conversion</a>: convert an image from one <a href="http://www.imagemagick.org/script/formats.php">format </a>to another (e.g. PNG to JPEG)</li>
<li>Transform: resize, rotate, crop, flip or trim an image</li>
<li>Transparency: render portions of an image invisible</li>
<li>Draw: add shapes or text to an image</li>
<li>Decorate: add a border or frame to an image</li>
<li>Special effects: blur, sharpen, threshold, or tint an image</li>
<li>Animation: create a GIF animation sequence from a group of images</li>
<li>Text &amp; comments: insert descriptive or artistic text in an image</li>
<li><a href="http://www.imagemagick.org/script/identify.php">Image identification</a>: describe the format and properties of an image</li>
<li><a href="http://www.imagemagick.org/script/composite.php">Composite</a>: overlap one image over another</li>
<li><a href="http://www.imagemagick.org/script/montage.php">Montage</a>: juxtapose image thumbnails on an image canvas</li>
<li><a href="http://www.imagemagick.org/script/motion-picture.php">Motion picture support</a>: read and write the common image formats used in digital film work</li>
<li><a href="http://www.imagemagick.org/script/fx.php">Image calculator</a>: apply a mathematical expression to an image or image channels</li>
<li><a href="http://www.imagemagick.org/script/high-dynamic-range.php">High dynamic-range images</a>: accurately represent the wide range of intensity levels found in real scenes ranging from the brightest direct sunlight to the deepest darkest shadows</li>
<li><a href="http://www.imagemagick.org/script/cipher.php">Encipher or decipher an image</a>: convert ordinary images into unintelligible gibberish and back again</li>
<li>Virtual pixel support: convenient access to pixels outside the image region</li>
<li>Large image support: read, process, or write mega- and giga-pixel image sizes</li>
<li><a href="http://www.imagemagick.org/script/architecture.php#threads">Threads of execution support</a>: ImageMagick is thread safe and most internal algorithms are OpenMP-enabled to take advantage of speed-ups offered by the dual and quad-core processor technologies</li>
</ul>
</div>
<p><strong>Nutzen?</strong> Jeder der eine automatisierte Umgebung verwaltet, einen performanten Batchjob oder einfach eine Serveranwendung schreiben möchte, ist mit ImageMagick bestens beraten. Die Bibliothek bietet Schnittstellen zu mehr oder minder allen Frameworks und Programmiersprachen (Ruby, C, Perl, C#, etc ..) und fühlt sich unter MacOX 10.5 (und älteren) pudelwohl!</p>
<p><strong>Anwendungsbeispiel aktuell</strong>: eine recht aufwändige Bildberechnung in Photoshop, mit Maske, Alpha-Ebene und transparenten PNGs berechnete nach jedem Fotoshooting zwischen 100 bis 300 Bilder, damit diese ins Internet (Partyfotos) geladen werden konnten. Mit Ruby erstellte ich ein simples Programm, welches die Bilder nicht nur bearbeitete, sondern im Anschluss auch automatisch auf den Webserver laden konnte. Der gesamte Prozess konnte somit sogar auf den Webserver selbst verlagert werden und von jedem genutzt werden!</p>
<p><strong>Wie geht&#8217;s?</strong> <strong>Voraussetzung!</strong> Um mit Ruby und Ruby Gems (eine Art Installer) arbeiten zu können, ist vielleicht etwas mehr als das &#8220;normale&#8221; MacOS Wissen erforderlich. Man sollte sich allerdings von keiner Terminalarbeit abschrecken lassen. Viel Zauberkunst ist nicht dabei! Voraussetzung: die Installation von Apples XCode (bzw. den Developer Tools). Diese werden benötigt, damit die geladenen Tools compiliert werden können. Sie liegen kostenlos bei developer.apple.com zum Download bereit (Registrierung erfroderlich) oder können über die MacOS Leopard DVD nachinstalliert werden. Möchte man Ruby als Programmiersprache verwenden, dann sollte auch die nötige Umgebung vorhanden sein. Wenn man auf MacOS Leopard arbeitet, so fällt dieser Schritt weg &#8211; Ruby ist schon an Bord! Die Version kann mittels Terminal kontrolliert werden (Terminal befindet sich in Programme-&gt;Dienstprogramme). Einfach &#8220;<em>ruby &#8211;version</em>&#8221; eintippen.</p>
<div id="attachment_322" class="wp-caption alignnone" style="width: 382px"><a rel="lightbox" href="http://blog.directorgate.com/wp-content/uploads/2009/02/ruby-version.png"><img class="size-full wp-image-322" title="ruby-version" src="http://blog.directorgate.com/wp-content/uploads/2009/02/ruby-version.png" alt="Ruby Version check" width="372" height="151" /></a><p class="wp-caption-text">Ruby Version check</p></div>
<p>Unter MacOS Tiger empfehle ich den Einsatz von <a title="MacPorts" href="http://www.macports.org/" target="_blank">MacPorts</a> &#8211; dieses Programm hilft bei der Installation ungemein.</p>
<p>Sollte man das erste Mal mit Ruby unter MacOS Leopard arbeiten, empfehle ich gleich vorweg folgenden Befehl auszuführen:&#8221;<em>sudo gem update &#8211;system</em>&#8221; (Ohne Anführungszeichen!). Dieser Befehl führt nach Eingabe des Kennwortes zu einem Systemupdate von Ruby und Gems.</p>
<p><strong>Voraussetzungen sind da &#8211; nun geht es los!</strong> Ruby und Apple Developer Tools sind da &#8230; nun wird ImageMagick und RMagick installiert. Diese stellen die Programme für die Bildbearbeitung zur Verfügung. ImageMagick ist dabei der essentielle Kern (die Basis). RMagick ist lediglich das Bindeglied, damit Ruby auf die Basis zugreifen kann. Da ImageMagick selbst aber ein paar Tools benötigt (so zum Beispiel ein Hilfstool für die Bearbeitung von JPEG Dateien), gestaltet sich der Installationsprozess in der Regel recht aufwändig. Einfacher geht es mit einer einzelnen Installationsdatei &#8211; die ich hiermit in aktueller Fassung (01.02.2009) zur Verfügung stelle: <a title="Install script ImageMagick MacOS" href="http://blog.directorgate.com/Download/InstallRMagickGem.sh.zip" target="_blank">DOWNLOAD</a>.</p>
<p>Der Inhalt der Datei ist einfach:</p>
<div style="font-size:9px; line-height:10px; background-color:#f4f4f4; padding:10px; text-align:left;">#!/bin/sh<br />
# Updated 01.02.2009<br />
# Updated by Andreas Unterhuber, blog.directorgate.com</p>
<p>curl -O http://download.savannah.gnu.org/releases/freetype/freetype-2.3.5.tar.gz<br />
tar xzvf freetype-2.3.5.tar.gz<br />
cd freetype-2.3.5<br />
./configure &#8211;prefix=/usr/local<br />
make<br />
sudo make install<br />
cd ..</p>
<p>curl -O http://superb-west.dl.sourceforge.net/sourceforge/libpng/libpng-1.2.22.tar.bz2<br />
tar jxvf libpng-1.2.22.tar.bz2<br />
cd libpng-1.2.22<br />
./configure &#8211;prefix=/usr/local<br />
make<br />
sudo make install<br />
cd ..</p>
<p># Neuer Downloadlink, da ursprüngliche Quelle fehlerhaft<br />
curl -O http://blog.directorgate.com/download/jpegsrc.v6b.tar.gz<br />
tar xzvf jpegsrc.v6b.tar.gz<br />
cd jpeg-6b<br />
ln -s `which glibtool` ./libtool<br />
export MACOSX_DEPLOYMENT_TARGET=10.5<br />
./configure &#8211;enable-shared &#8211;prefix=/usr/local<br />
make<br />
sudo make install<br />
cd ..</p>
<p>curl -O ftp://ftp.remotesensing.org/libtiff/tiff-3.8.2.tar.gz<br />
tar xzvf tiff-3.8.2.tar.gz<br />
cd tiff-3.8.2<br />
./configure &#8211;prefix=/usr/local<br />
make<br />
sudo make install<br />
cd ..</p>
<p>curl -O http://jaist.dl.sourceforge.net/sourceforge/wvware/libwmf-0.2.8.4.tar.gz<br />
tar xzvf libwmf-0.2.8.4.tar.gz<br />
cd libwmf-0.2.8.4<br />
make clean<br />
./configure<br />
make<br />
sudo make install<br />
cd ..</p>
<p>curl -O http://www.littlecms.com/lcms-1.17.tar.gz<br />
tar xzvf lcms-1.17.tar.gz<br />
cd lcms-1.17<br />
make clean<br />
./configure<br />
make<br />
sudo make install<br />
cd ..</p>
<p>curl -O ftp://mirror.cs.wisc.edu/pub/mirrors/ghost/GPL/gs860/ghostscript-8.63.tar.gz<br />
tar zxvf ghostscript-8.63.tar.gz<br />
cd ghostscript-8.63/<br />
./configure  &#8211;prefix=/usr/local<br />
make<br />
sudo make install<br />
cd ..</p>
<p>curl -O ftp://mirror.cs.wisc.edu//pub/mirrors/ghost/fonts/ghostscript-fonts-std-8.11.tar.gz<br />
tar zxvf ghostscript-fonts-std-8.11.tar.gz<br />
sudo mv fonts /usr/local/share/ghostscript</p>
<p># Nun die notwendige Basis &#8220;ImageMagick&#8221; laden und compilieren<br />
curl -O ftp://ftp.imagemagick.org/pub/ImageMagick/ImageMagick-6.4.8-10.tar.gz<br />
tar xzvf ImageMagick-6.4.8-10.tar.gz<br />
cd ImageMagick-6.4.8-10<br />
export CPPFLAGS=-I/usr/local/include<br />
export LDFLAGS=-L/usr/local/lib<br />
./configure &#8211;prefix=/usr/local &#8211;disable-static &#8211;with-modules &#8211;without-perl &#8211;without-magick-plus-plus &#8211;with-quantum-depth=8 &#8211;with-gs-font-dir=/usr/local/share/ghostscript/fonts<br />
make<br />
sudo make install<br />
cd ..</p>
<p># Ruby Schnittstelle laden und installieren<br />
sudo gem install rmagick</p></div>
<p><strong>VORSICHT</strong>: nicht copy&amp;paste vom oberen Code (Zeilenumbruch!). Anstelle die bereits erwähnte <a title="Install script ImageMagick MacOS" href="http://blog.directorgate.com/Download/InstallRMagickGem.sh.zip" target="_blank">Installations-Datei</a> laden.</p>
<p>Steps zur Installation:</p>
<ol style="list-style:decimal">
<li>Laden der oben erähnten Image-Magick Installationsdatei (<a title="Install script ImageMagick MacOS" href="http://blog.directorgate.com/Download/InstallRMagickGem.sh.zip" target="_blank">Download</a>)</li>
<li>Erstellen eines Ordners im Finder (am besten direkt in &#8220;Macintosh HD&#8221;)</li>
<li>Geladene Datei entpacken (falls noch nicht geschehen) und in den erstellten Ordner legen.</li>
<li>Terminal öffnen</li>
<li>Im Terminal: &#8220;<em>cd /NAMEdesORDNERS/</em>&#8221; eintippen (falls der Ordner wo anders erstellt wurde, entsprechend anpassen). Nun befindet man sich im Ordner mit der &#8220;.sh&#8221; Datei.</li>
<li>Im Terminal &#8220;<em>chmod +x InstallRMagickGem.sh</em>&#8221; eingeben</li>
<li>Sicherstellen, dass Internetverbindung steht</li>
<li>Im Terminal &#8220;sudo InstallRMagickGem.sh&#8221; eingeben</li>
<li>Passwort eingeben</li>
<li>&#8230; abwarten &#8230; Installation läuft!</li>
</ol>
<p>Nach der Eingabe des Passwortes (Schritt 9) läuft die Installation an und kann &#8211; je nach Rechner und Internetverbindung &#8211; einige Zeit in Anspruch nehmen. Nach der Installation sollte ImageMagick (im Ordner &#8220;/usr/local/&#8221;) und RMagick installiert sein und einer effizienten Bildbearbeitung steht nichts mehr im Wege. Ein kleines Beispielscript generiert beispielsweise Thumbnails aus dem angegeben Bild: <a title="Thumbnail Script for Ruby RMagick" href="http://blog.directorgate.com/Download/thumbnail.rb.zip" target="_blank">download des scripts</a>.</p>
<div id="attachment_328" class="wp-caption aligncenter" style="width: 233px"><a rel="lightbox" href="http://blog.directorgate.com/wp-content/uploads/2009/02/thumbnail-script-ruby.png"><img class="size-medium wp-image-328" title="thumbnail-script-ruby" src="http://blog.directorgate.com/wp-content/uploads/2009/02/thumbnail-script-ruby-223x300.png" alt="Thumbnail Generierung mit Ruby" width="223" height="300" /></a><p class="wp-caption-text">Thumbnail-Generierung mit Ruby</p></div>
<p>Der tatsächliche Code wäre gerade mal 5 Zeilen lang &#8230;</p>
<p><strong>Hinweise am Rande</strong>: die auf mehreren Webseiten vorkompilierten Dateien für ImageMagick sind allesamt mehr oder minder zu vergessen. Die Installation funktioniert entweder nicht oder die Einbindung in MacOS ist mangelhaft. Die beschriebene Variante ist zur Zeit die einzige sauber funktionierende!<br />
Ruby ist eine äußerst insteressante Programmiersprache, die ich nun immer öfter sogar als AppleScript Ersatz heranziehe (es sei denn mit AppleScript werden andere Programme gesteuert). Ein Blick auf die Webseiten von <a title="Ruby" href="http://www.ruby-lang.org/de/" target="_blank">Ruby</a> und <a title="Ruby on Rails" href="http://rubyonrails.org/" target="_blank">Ruby on Rails</a> (Webframework) lohnt sich.</p>
<img src="http://blog.directorgate.com/?ak_action=api_record_view&id=321&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://blog.directorgate.com/2009/install-imagemagick-rmagick-ruby-leopard/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

