<?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>imagemagick &#8211; Linux und Ich</title>
	<atom:link href="https://linuxundich.de/tag/imagemagick/feed/" rel="self" type="application/rss+xml" />
	<link>https://linuxundich.de</link>
	<description>Blog über Ubuntu, Linux, Android und IT</description>
	<lastBuildDate>Thu, 13 Mar 2025 12:37:04 +0000</lastBuildDate>
	<language>de</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://linuxundich.de/wp-content/uploads/2025/04/cropped-lui-app-512-32x32.png</url>
	<title>imagemagick &#8211; Linux und Ich</title>
	<link>https://linuxundich.de</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Bilder für das Web aufbereiten</title>
		<link>https://linuxundich.de/gnu-linux/bilder-fur-das-web-aufbereiten/</link>
					<comments>https://linuxundich.de/gnu-linux/bilder-fur-das-web-aufbereiten/#comments</comments>
		
		<dc:creator><![CDATA[Christoph Langner]]></dc:creator>
		<pubDate>Fri, 06 Mar 2009 16:19:17 +0000</pubDate>
				<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[Gimp]]></category>
		<category><![CDATA[imagemagick]]></category>
		<category><![CDATA[Shell]]></category>
		<category><![CDATA[Webdesign]]></category>
		<guid isPermaLink="false">http://christoph-langner.de/de/?p=672</guid>

					<description><![CDATA[Letzten Monat habe ich mit fast 23GB Traffic meinen &#8222;Inklusivtraffic&#8220; von 25GB überschritten. Zeit das Blog etwas aufzuräumen und Bilder zu verkleinern. Da sich hier ein paar hundert Bilder und deren Thumbnails angesammelt haben, soll das Verfahren möglichst automatisch ablaufen und das Ergebnis in möglichst kleine Bilder resultieren, die dennoch gut aussehen. Mit Imagemagick, Gimp, [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Letzten Monat habe ich mit fast 23GB Traffic meinen &#8222;Inklusivtraffic&#8220; von 25GB überschritten. Zeit das Blog etwas aufzuräumen und Bilder zu verkleinern. Da sich hier ein paar hundert Bilder und deren Thumbnails angesammelt haben, soll das Verfahren möglichst automatisch ablaufen und das Ergebnis in möglichst kleine Bilder resultieren, die dennoch gut aussehen.</p>
<p><span id="more-672"></span></p>
<p>Mit Imagemagick, Gimp, optipng und pngcrush stehen ein paar Kandidaten zur Auswahl, die hier Besserung versprechen. Ersteinmal gilt es jedoch herauszufinden welches Programm am besten komprimiert. Als Vorlage benutze ich diesen Screenshot.</p>
<figure id="attachment_673" aria-describedby="caption-attachment-673" style="width: 415px" class="wp-caption aligncenter"><img fetchpriority="high" decoding="async" class="size-medium wp-image-673" title="orig" src="http://linuxundich.de/wp-content/uploads/2009/03/orig-415x475.png" alt="Vorlage: 68966 Bytes" width="415" height="475"><figcaption id="caption-attachment-673" class="wp-caption-text">Vorlage: 68966 Bytes</figcaption></figure>
<p>Ich denke das Bild ist ein gutes Beispiel für Screenshots von Anwendungsprogrammen. Im Original hat das Bild eine Größe von 68966 Bytes. Diesen Wert gilt es also deutlich zu verbessern.</p>
<h2>Gimp</h2>
<p>Als erstes muss sich Gimp beweisen. Am einfachsten reduziert man die Größe eines PNG-Bildes indem man die Farbpalette reduziert. Gimp kann eine <em>optimale Palette</em> erzeugen und so eine auf das Bild angepasste Palette produzieren. Die Funktion findet sich unter <em>Bild | Modus | Indiziert | Optimale Palette erzeugen</em> und schrumpft das Bild auf 27026 Bytes ein, d.h. das mit GIMP erzeugte Bild hat nur noch rund 39% der ursprünglichen Dateigröße ohne dass das Bild groß dabei leidet.</p>
<figure id="attachment_674" aria-describedby="caption-attachment-674" style="width: 415px" class="wp-caption aligncenter"><img decoding="async" class="size-medium wp-image-674" title="gimp_optimalepalette" src="http://linuxundich.de/wp-content/uploads/2009/03/gimp_optimalepalette-415x475.png" alt="Optimale Palette mit The Gimp: 27026 Bytes" width="415" height="475"><figcaption id="caption-attachment-674" class="wp-caption-text">Optimale Palette mit The Gimp: 27026 Bytes</figcaption></figure>
<h2>Imagemagick</h2>
<p>Als nächstes kommt <em>convert</em> aus dem Paket <a href="http://wiki.ubuntuusers.de/Imagemagick" target="_blank" rel="noopener">Imagemagick</a> auf die Testbank. Erst einmal versuche ich wieder die Farbpalette zu reduzieren.</p>
<pre>$ convert -colors 16 orig.png convert_colors16.png
$ convert -colors 256 orig.png convert_colors256.png
</pre>
<p>Das Ergebnis ist unter aller Katastrophe, die Bilder sind größer als vorher. Das auf 16 Farben reduzierte Bild hat 103425 Bytes und das mit 256 Farben 184634 Bytes. Convert komprimiert wohl die Bilder nicht per Default, dies muss man mit der Option <a href="http://www.imagemagick.org/script/command-line-options.php" target="_blank" rel="noopener">&#8211;quality</a> erst aktivieren. 1000 steht dabei für die höchstmögliche Kompression.</p>
<pre>$ convert -colors 16 -quality 1000 orig.png convert_colors16_quality1000.png
$ convert -colors 256 -quality 1000 orig.png convert_colors256_quality1000.png
</pre>
<p>Auch hier ist das Ergebnis wieder schlecht. Das 16 Farben Bild läuft danach mit 56196 Bytes in Ziel, das Bild mit 256 Farben mit 85889 Bytes. Ergebnis: convert kann keine optimale Palette erzeugen. Dadurch sieht das Bild schrecklich aus und ist dennoch größer als es sein müsste&#8230;</p>
<h2>optipng</h2>
<p><a href="http://optipng.sourceforge.net/" target="_blank" rel="noopener">optipng</a> ist ein Programm, dass speziell zum Optimieren und Verkleinern von .png Bildern geschrieben wurde. Es lässt sich in Ubuntu und Debian aus den Paketquellen installieren. Ich komprimiere einmal das &#8222;Original&#8220; und einmal ein Bild, das ich vorher mit <em>convert</em> auf eine Palette mit 256 Farben komprimiert habe.</p>
<pre>$ optipng -k orig.png
$ optipng -k convert_colors256_quality1000.png
</pre>
<p>Auch hier ist das Ergebnis wieder mager. optipng komprimiert die Vorlage auf 63539 Bytes, also auf rund 92% des ursprünglichen Bildes. Das Bild mit 256 Farben wird von 184634 Bytes auf 85620 Bytes komprimiert. Gut, wenn man sich die 50% Ersparnis ansieht. Doch schlecht, wenn man bedenkt, dass GIMP ein 27kb großes Bild erzeugen kann&#8230;</p>
<h2>pngcrush</h2>
<p>Alternativ zu optipng gibt es <a href="http://pmt.sourceforge.net/pngcrush/" target="_blank" rel="noopener">pngcrush</a>. Das Programm findet man ebenso in den Quellen. Auch hier komprimiere ich einmal das Original und einmal das mit Convert auf 256 Farben reduzierte Bild.</p>
<pre>$ pngcrush -c 3 -brute orig.png pngcrush.png
$ pngcrush -c 3 -brute convert_colors256_quality1000.png pngcrush_convert_colors256_quality1000.png
</pre>
<p>Das Ergebnis deckt sich praktisch völlig mit optipng. Einmal bekomme ich 63793 Bytes und einmal 85889 Bytes. Wieder alles deutlich größer als Gimp&#8230;</p>
<h2>Script-Fu</h2>
<p>The Gimp ist also wohl nicht zu schlagen. Kein anderes Programm schafft es auch nur annähernd in die Reichweite der Größenreduktion von Gimp zu kommen. Einen Haken hat die Sache allerdings&#8230; Ein paar Hundert Bilder in Gimp zu laden und sich durch die Menüs zu hangeln? Das wäre enorm viel Klickarbeit.</p>
<p>Aber wozu hat Gimp einen Modus mit dem man eigene Skripte ausführen kann? Mit <a href="http://www.gimp-scripte.de/?Script-Fu" target="_blank" rel="noopener">Script-Fu</a> kann man Gimp komplett über Skripte bedienen. Im uu.de Forum hatte mir ein guter Geist schon einmal ein Skript <a href="http://forum.ubuntuusers.de/post/1443468/" target="_blank" rel="noopener">geschrieben</a>, das für alle .png Dateien in einem Ordner eine optimale Palette erzeugt. Es hatte noch eine Fallunterscheidung gefehlt, die die Indezierung nur auf Bilder loslässt, die noch nicht indeziert wurde. Doch jetzt klappt das <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;"> Wer so etwas sucht, der speichert das Skript&#8230;</p>
<pre lang="ini">(define (batch-generate-optimum-palette pattern
	dither-type
	palette-type
	num-cols
	alpha-dither
	remove-unused
	palette
	)

	(let* ((filelist (cadr (file-glob pattern 1))))
		(while (not (null? filelist))
			(let* (
				(filename (car filelist))
				(image (car (gimp-file-load RUN-NONINTERACTIVE filename filename)))
				(drawable (car (gimp-image-get-active-layer image)))
			)
			(if (= FALSE (car (gimp-drawable-is-indexed drawable)))
				(gimp-image-convert-indexed image dither-type palette-type num-cols alpha-dither remove-unused palette)
				)
				(set! drawable (car (gimp-image-get-active-layer image)))
				(gimp-file-save RUN-NONINTERACTIVE image drawable filename filename)
				(gimp-image-delete image)

			)
			(set! filelist (cdr filelist))
		)
	)
)
</pre>
<p>&#8230;in <code>~/.gimp-2.6/scripts/batch-generate-optimum-palette</code> ab. Danach kann man es über</p>
<pre>$ gimp -i -b '(batch-generate-optimum-palette "*.png" 0 0 256 TRUE TRUE "")' -b '(gimp-quit 0)'
</pre>
<p>ausführen. Alle .png Bilder, die sich im aktuellen Ordner der Shell befinden, werden dann automatisch optimiert. Legt man dazu noch ein <a href="http://wiki.ubuntuusers.de/Shell/Alias" target="_blank" rel="noopener">Alias</a> für die Shell an, so hat man ein perfektes Werkzeug um Bilder in großen Massen für das Web aufzubereiten. So habe ich hoffentlich noch etwas Zeit, bis ich den nächst höheren Hostingtarif wählen muss.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://linuxundich.de/gnu-linux/bilder-fur-das-web-aufbereiten/feed/</wfw:commentRss>
			<slash:comments>12</slash:comments>
		
		
			</item>
	</channel>
</rss>
