<?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>GD Library &#8211; Roy Duineveld</title>
	<atom:link href="https://royduineveld.nl/tag/gd-library/feed/" rel="self" type="application/rss+xml" />
	<link>https://royduineveld.nl</link>
	<description>Waarom moeilijk doen als het makkelijk kan?</description>
	<lastBuildDate>Tue, 27 Jan 2026 07:48:00 +0000</lastBuildDate>
	<language>nl</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.9.26</generator>
	<item>
		<title>Gemakkelijk miniaturen maken met GD Library</title>
		<link>https://royduineveld.nl/gemakkelijk-miniaturen-maken-met-gd-library/</link>
		<comments>https://royduineveld.nl/gemakkelijk-miniaturen-maken-met-gd-library/#respond</comments>
		<pubDate>Wed, 24 Jul 2013 19:11:49 +0000</pubDate>
		<dc:creator><![CDATA[Roy Duineveld]]></dc:creator>
				<category><![CDATA[Tips & Trucs]]></category>
		<category><![CDATA[GD Library]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">https://royduineveld.nl/?p=496</guid>
		<description><![CDATA[<p>Op het internet zijn tal van scripts te vinden om miniaturen te maken. Na een speurtocht uiteindelijk gekozen zelf een functie hiervoor te schrijven met de volgende functionaliteiten cq vereisten:...</p>
<p>Het bericht <a rel="nofollow" href="https://royduineveld.nl/gemakkelijk-miniaturen-maken-met-gd-library/">Gemakkelijk miniaturen maken met GD Library</a> verscheen eerst op <a rel="nofollow" href="https://royduineveld.nl">Roy Duineveld</a>.</p>
]]></description>
				<content:encoded><![CDATA[<p>Op het internet zijn tal van scripts te vinden om miniaturen te maken. Na een speurtocht uiteindelijk gekozen zelf een functie hiervoor te schrijven met de volgende functionaliteiten cq vereisten:</p>
<ul>
<li><span style="line-height: 13px;">Zowel de hoogte als de breedte in kunnen stellen</span></li>
<li>De miniatuur dient altijd gevuld te zijn, wanneer de verhouding dus niet gelijk is dient er wat afgesneden te worden</li>
<li>Gemakkelijk in gebruik, waaronder de afbeelding extensie niet op te hoeven geven</li>
<li>Eventueel meerdere formaten miniaturen te maken, dus een bestandsnaam met de grootte erin zodat deze niet overschreven worden</li>
</ul>
<p>Dit heeft het volgende resultaat opgeleverd:</p>
<pre class="brush: php; title: ; notranslate">
&lt;?php
/**
 * Create thumbnail (resize and/or crop image)
 * @param  string  $image  Source image
 * @param  integer $width  Thumbnail width
 * @param  integer $height Thumbnail height
 * @return string          The generated thumbnail
 */
function thumb($image,$width = 200,$height = 200)
{
	// Image set?
	if($image)
	{
		// Get the file information
		$fileinfo = pathinfo($image);

		// Set the thumbnail location
		$image_thumb = $fileinfo['dirname'] . '/thumb/' . $width . '-' . $fileinfo['basename'];

		// Thumbnail already exists?
		if(!file_exists($image_thumb))
		{
			// Get source as image
			$image = imagecreatefromstring(file_get_contents($image));

			// Set new size
			$thumb_width 		= $width;
			$thumb_height 		= $height;

			// Get image size
			$width 				= imagesx($image);
			$height 			= imagesy($image);

			// Calculate ratio
			$original_aspect 	= $width / $height;
			$thumb_aspect 		= $thumb_width / $thumb_height;

			// Image wider than new size?
			if ( $original_aspect &gt;= $thumb_aspect )
			{
				$new_height 	= $thumb_height;
				$new_width 		= $width / ($height / $thumb_height);
			}
			// New size wider than the image
			else
			{
				$new_width 		= $thumb_width;
				$new_height 	= $height / ($width / $thumb_width);
			}

			// Create new image
			$thumb = imagecreatetruecolor( $thumb_width, $thumb_height );

			// Resize and crop
			imagecopyresampled($thumb,
									$image,
									0 - ($new_width - $thumb_width) / 2, // Center the image horizontally
									0 - ($new_height - $thumb_height) / 2, // Center the image vertically
									0, 0,
									$new_width, $new_height,
									$width, $height);

			// Create and return image
			imagejpeg($thumb,$image_thumb);

			// Destroy
			imagedestroy($thumb);
		}

		// Return the thumbnail
		return $image_thumb;
	}
	else
	{
		// Set a placeholder
		return 'http://placehold.it/'.$width.'x'.$height;
	}
}
?&gt;
</pre>
<p>Tevens wordt er al gecontroleerd of de miniatuur al gemaakt is, hierdoor kan deze eventueel direct aangesproken worden door de functie te koppelen aan GET variabelen:</p>
<pre class="brush: php; title: ; notranslate">
&lt;?php
if($_GET['thumb'])
{
	echo thumb($_GET['thumb'],200,200);
}
?&gt;
</pre>
<p>Wat vervolgens op de volgende manier gebruikt kan worden:</p>
<pre class="brush: xml; title: ; notranslate">&lt;img src=&quot;file.php?thumb=source-image.jpg&quot; alt=&quot;&quot;&gt;</pre>
<blockquote><p>Deze functie wordt onder andere gebruikt in een <a title="Ga naar mijn portfolio" href="https://royduineveld.nl/#/aalsmeerse-plantenhal" target="_blank">advertentie systeem</a> en op <a title="Ga naar Fastr" href="http://fastr.nl" target="_blank">Fastr</a>, een nieuw platform voor autoliefhebbers!</p></blockquote>
<p>Het bericht <a rel="nofollow" href="https://royduineveld.nl/gemakkelijk-miniaturen-maken-met-gd-library/">Gemakkelijk miniaturen maken met GD Library</a> verscheen eerst op <a rel="nofollow" href="https://royduineveld.nl">Roy Duineveld</a>.</p>
]]></content:encoded>
			<wfw:commentRss>https://royduineveld.nl/gemakkelijk-miniaturen-maken-met-gd-library/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Patronen maken met Imagick</title>
		<link>https://royduineveld.nl/patronen-maken-met-imagick/</link>
		<comments>https://royduineveld.nl/patronen-maken-met-imagick/#respond</comments>
		<pubDate>Thu, 15 Nov 2012 15:15:50 +0000</pubDate>
		<dc:creator><![CDATA[Roy Duineveld]]></dc:creator>
				<category><![CDATA[Tips & Trucs]]></category>
		<category><![CDATA[GD Library]]></category>
		<category><![CDATA[Imagick]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">https://royduineveld.nl/?p=38</guid>
		<description><![CDATA[<p>Eerst geprobeerd met GD library om patronen te maken. Dit werd uiteindelijk erg onoverzichtelijk. Geprobeerd met Imagick met het gewenste resultaat. Eerst de even een aantal waardes definiëren:  Basis Halfverband verticaal  Halfverband...</p>
<p>Het bericht <a rel="nofollow" href="https://royduineveld.nl/patronen-maken-met-imagick/">Patronen maken met Imagick</a> verscheen eerst op <a rel="nofollow" href="https://royduineveld.nl">Roy Duineveld</a>.</p>
]]></description>
				<content:encoded><![CDATA[<p>Eerst geprobeerd met <a href="http://php.net/gd">GD library</a> om patronen te maken. Dit werd uiteindelijk erg onoverzichtelijk. Geprobeerd met Imagick met het gewenste resultaat. Eerst de even een aantal waardes definiëren:</p>
<pre class="brush: php; title: ; notranslate">&lt;?php
$output_h = 500; //Resultaat hoogte
$output_w = 500; //Resultaat breedte
$image_size = 100; //Afbeelding grote
$src = 'input.jpg'; //Originele afbeelding
$output = 'output.jpg'; //Resultaat afbeelding
?&gt;</pre>
<p><strong> Basis</strong></p>
<p><a href="https://royduineveld.nl/wp-content/uploads/2012/11/basis.png"><img class="alignnone size-thumbnail wp-image-39" title="Imagick basis" src="https://royduineveld.nl/wp-content/uploads/2012/11/basis-150x150.png" alt="" width="150" height="150" srcset="https://royduineveld.nl/wp-content/uploads/2012/11/basis-150x150.png 150w, https://royduineveld.nl/wp-content/uploads/2012/11/basis-300x300.png 300w, https://royduineveld.nl/wp-content/uploads/2012/11/basis.png 500w" sizes="(max-width: 150px) 100vw, 150px" /></a></p>
<pre class="brush: php; title: ; notranslate">&lt;?php
exec('convert '.$src.' -resize '.$image_size.' +append -write mpr:sometile +delete -size '.$output_w.'x'.$output_h.' tile:mpr:sometile '.$outfile);
?&gt;</pre>
<p><strong>Halfverband verticaal</strong></p>
<p><a href="https://royduineveld.nl/wp-content/uploads/2012/11/halfverband_verticaal.png"><img class="alignnone size-thumbnail wp-image-40" title="Imagick halfverband verticaal" src="https://royduineveld.nl/wp-content/uploads/2012/11/halfverband_verticaal-150x150.png" alt="" width="150" height="150" srcset="https://royduineveld.nl/wp-content/uploads/2012/11/halfverband_verticaal-150x150.png 150w, https://royduineveld.nl/wp-content/uploads/2012/11/halfverband_verticaal-300x300.png 300w, https://royduineveld.nl/wp-content/uploads/2012/11/halfverband_verticaal.png 500w" sizes="(max-width: 150px) 100vw, 150px" /></a></p>
<pre class="brush: php; title: ; notranslate">&lt;?php
exec('convert '.$src.' -resize '.$image_size.' -format &quot;%[fx:round(h/2)]&quot; info:',$result);
exec('convert '.$src.' -resize '.$image_size.' \( -clone 0 -roll +0+'.$result[0].' \) +append -write mpr:sometile +delete -size '.$output_w.'x'.$output_h.' tile:mpr:sometile '.$outfile);
?&gt;</pre>
<p><strong> Halfverband horizontaal</strong></p>
<p><a href="https://royduineveld.nl/wp-content/uploads/2012/11/halfverband_horizontaal.png"><img class="alignnone size-thumbnail wp-image-41" title="Imagick halfverband horizontaal" src="https://royduineveld.nl/wp-content/uploads/2012/11/halfverband_horizontaal-150x150.png" alt="" width="150" height="150" srcset="https://royduineveld.nl/wp-content/uploads/2012/11/halfverband_horizontaal-150x150.png 150w, https://royduineveld.nl/wp-content/uploads/2012/11/halfverband_horizontaal-300x300.png 300w, https://royduineveld.nl/wp-content/uploads/2012/11/halfverband_horizontaal.png 500w" sizes="(max-width: 150px) 100vw, 150px" /></a></p>
<pre class="brush: php; title: ; notranslate">&lt;?php
exec('convert '.$src.' -resize '.$image_size.' -format &quot;%[fx:round(w/2)]&quot; info:',$result);
exec('convert '.$src.' -resize '.$image_size.' \( -clone 0 -roll -'.$result[0].'-0 \) -append -write mpr:sometile +delete -size '.$output_w.'x'.$output_h.' tile:mpr:sometile '.$outfile);
?&gt;</pre>
<p><strong> Gespiegeld</strong></p>
<p><a href="https://royduineveld.nl/wp-content/uploads/2012/11/gespiegeld.png"><img class="alignnone size-thumbnail wp-image-42" title="Imagick gespiegeld" src="https://royduineveld.nl/wp-content/uploads/2012/11/gespiegeld-150x150.png" alt="" width="150" height="150" srcset="https://royduineveld.nl/wp-content/uploads/2012/11/gespiegeld-150x150.png 150w, https://royduineveld.nl/wp-content/uploads/2012/11/gespiegeld-300x300.png 300w, https://royduineveld.nl/wp-content/uploads/2012/11/gespiegeld.png 500w" sizes="(max-width: 150px) 100vw, 150px" /></a></p>
<pre class="brush: php; title: ; notranslate">&lt;?php
exec('convert '.$src.' -resize '.$image_size.' \( -clone 0 -flip \) -append -write mpr:sometile +delete -size '.$output_w.'x'.$output_h.' tile:mpr:sometile '.$outfile);
?&gt;</pre>
<p><strong> In het midden</strong></p>
<p><a href="https://royduineveld.nl/wp-content/uploads/2012/11/in_het_midden.png"><img class="alignnone size-thumbnail wp-image-42" title="Imagick in het midden" src="https://royduineveld.nl/wp-content/uploads/2012/11/in_het_midden-150x150.png" alt="" width="150" height="150" /></a></p>
<pre class="brush: php; title: ; notranslate">&lt;?php
exec('convert '.$src.' -resize '.$image_size.' -background white -gravity center -extent '.$output_w.'x'.$output_h.' '.$outfile);
?&gt;</pre>
<p>Het bericht <a rel="nofollow" href="https://royduineveld.nl/patronen-maken-met-imagick/">Patronen maken met Imagick</a> verscheen eerst op <a rel="nofollow" href="https://royduineveld.nl">Roy Duineveld</a>.</p>
]]></content:encoded>
			<wfw:commentRss>https://royduineveld.nl/patronen-maken-met-imagick/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>