<?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>Young Dutch Design &#187; color</title>
	<atom:link href="http://youngdutchdesign.com/tag/color/feed" rel="self" type="application/rss+xml" />
	<link>http://youngdutchdesign.com</link>
	<description>Young Dutch Design is a new platform for young designers with frequently new added postings about productdesign, webdesign and other related subjects.</description>
	<lastBuildDate>Tue, 14 Jun 2011 20:25:43 +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>MooDrop: Mootools Eyedropper tool</title>
		<link>http://youngdutchdesign.com/moodrop-mootools-eyedropper-tool</link>
		<comments>http://youngdutchdesign.com/moodrop-mootools-eyedropper-tool#comments</comments>
		<pubDate>Thu, 24 Sep 2009 15:54:04 +0000</pubDate>
		<dc:creator>Crispijn</dc:creator>
				<category><![CDATA[Mootools]]></category>
		<category><![CDATA[color]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Json]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://youngdutchdesign.com/?p=1595</guid>
		<description><![CDATA[For a new application I&#8217;m working on I&#8217;ve searched the internet for a javascript based eyedropper tool. Fortunately I only found some Java based applications and I&#8217;m not a big fan of those. So I decided to write my own Eyedropper. Test it and install it on your own website! You can tweak some events [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-full wp-image-1639" title="moodrop" src="http://youngdutchdesign.com/wp-content/uploads/2009/09/moodrop.jpg" alt="moodrop" width="200" height="200" />For a new application I&#8217;m working on I&#8217;ve searched the internet for a javascript based eyedropper tool. Fortunately I only found some Java based applications and I&#8217;m not a big fan of those.</p>
<p>So I decided to write my own Eyedropper. Test it and install it on your own website! You can tweak some events so it has more functionality.</p>
<p>There is also a Zip file available with a working example. Just upload the files to your folder on your webspace and navigate to it!</p>
<p><a class="example_but demo" href="http://youngdutchdesign.com/examples/moodrop.php">Example</a> <a class="example_but download" href="http://youngdutchdesign.com/examples/js/moodrop.js">Download Class</a> <a class="example_but zipfile" href="http://www.youngdutchdesign.com/downloads/cvMooDrop_examples.zip">Download Zip</a></p>
<p><span id="more-1595"></span></p>
<h2>File structure</h2>
<p>The following structure is used in the example and the documentation.</p>
<ul>
<li><strong>images</strong>
<ul>
<li>your_image.jpg</li>
</ul>
</li>
<li><strong>js</strong>
<ul>
<li>cvMooDrop.js</li>
<li>mootools-1.2.js</li>
</ul>
</li>
<li>ajax_moodrop.php</li>
<li>basic.css</li>
<li>cvMooDrop.css</li>
<li>index.php /*This file contains the html for the eyedropper*/</li>
<li>moodrop.php</li>
</ul>
<h2>The html</h2>
<p>The html is really simple. The path to the image is the relative path.</p>
<h2>The css</h2>
<pre class="css">#dropperid {
	float: left;
	padding: 0px;
	width: 551px; //the width of the image
	height: 157px; //the height of the image
	}

#prev {
	float: left;
	width: 80px;
	height: 80px;
	border: 1px #CCC solid;
	}</pre>
<h2>The basic javascript</h2>
<pre class="javascript">window.addEvent('domready', function() {
	var test1 = new moodrop('dropperid',{
		url: 'ajax_moodrop.php',
		prev_id: 'prev'
	});
});</pre>
<h2>The more advanced javascript</h2>
<pre class="javascript">window.addEvent('domready', function() {
	var test2 = new moodrop('dropperadvanced',{
		url: 'ajax_moodrop.php',
		prev_id: 'prev2',
	});

	var colors = [];

	var addColor = function(c){
		if(colors.contains(c)){
			alert('This color already exists!');
		}else{
			colors.push(c);
			$('colors_field').value = JSON.encode(colors);
			createColor(c);
		}
	}

	var createColor = function(c){
		var box = new Element('span',{	'id': this.hex,
							  			'class': 'box',
										'styles': {
											'background': c,
											'display': 'block',
											'float': 'left',
											'cursor': 'pointer'
											}
										}).inject($('scheme'));
	};

	$('add').addEvent('click',function(a){
		addColor(test2.hex);
	});
});</pre>
<h2>The php (ajax_moodrop.php)</h2>
<p>The AJAX request has several variables in it to get the right pixel, the pixel the dropper is pointing at.</p>
<ul>
<li><strong>image: </strong>the relative path to the image file</li>
<li><strong>n: </strong>the relative top position of the pixel</li>
<li><strong>w: </strong>the relative left position of the pixel</li>
</ul>
<pre class="php">if(isset($_GET['image'])){
	/* select the left lower pixel from the dropperdiv and get the color index */
	$im = imagecreatefromjpeg($_GET['image']);
	$color_index = imagecolorat($im, $_GET['w'], $_GET['n']);

	/* get rid of the temporary image and display the human readable hex color */
	echo '#'.dechex($color_index);
}</pre>
<p>The function imagecreatefrom* can be changed to several functions, depending on the image type you use. In this case I&#8217;ve used a very simple static solution but you can select the correct function by checking the mime type.</p>
<ul>
<li><a href="http://php.net/imagecreatefromjpeg" target="_blank">imagecreatefromjpeg</a></li>
<li><a href="http://php.net/imagecreatefromgif" target="_blank">imagecreatefromgif</a></li>
<li><a href="http://php.net/imagecreatefrompng" target="_blank">imagecreatefrompng</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://youngdutchdesign.com/moodrop-mootools-eyedropper-tool/feed</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
	</channel>
</rss>
