<?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/"
	
xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#"
>

<channel>
	<title>Tanner Helland (dot) com</title>
	<atom:link href="http://www.tannerhelland.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.tannerhelland.com</link>
	<description>Stories about writing books, code, and symphonies.  (Sometimes all three at once.)</description>
	<lastBuildDate>Wed, 31 Jul 2013 17:18:41 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	
<site xmlns="com-wordpress:feed-additions:1">3900576</site>	<item>
		<title>How much traffic do you get from a viral YouTube video?</title>
		<link>http://www.tannerhelland.com/5895/traffic-viral-youtube-video/</link>
				<comments>http://www.tannerhelland.com/5895/traffic-viral-youtube-video/#comments</comments>
				<pubDate>Tue, 06 Oct 2015 15:40:19 +0000</pubDate>
		<dc:creator><![CDATA[Tanner]]></dc:creator>
				<category><![CDATA[Music]]></category>

		<guid isPermaLink="false">http://www.tannerhelland.com/?p=5895</guid>
				<description><![CDATA[Last month, the team from Realm Pictures built an incredibly clever &#8220;interactive real-life first-person shooter&#8221; that strangers could play over Chatroulette, Omegle, and Skype. In the behind-the-scenes video, they talk about how they pulled off the feat, and it&#8217;s an impressive example of unifying a bunch of different technology to accomplish something novel. Before the &#8230; <a href="http://www.tannerhelland.com/5895/traffic-viral-youtube-video/" class="more-link">Continue reading <span class="screen-reader-text">How much traffic do you get from a viral YouTube video?</span></a>]]></description>
								<content:encoded><![CDATA[<p>Last month, the team from <a href="http://realm-pictures.co.uk/">Realm Pictures</a> built an incredibly clever <a href="https://www.youtube.com/watch?v=p747PrxmZJ4">&#8220;interactive real-life first-person shooter&#8221;</a> that strangers could play over Chatroulette, Omegle, and Skype.  In the <a href="https://www.youtube.com/watch?v=FpfXmcL7Ox0">behind-the-scenes video</a>, they talk about how they pulled off the feat, and it&#8217;s an impressive example of unifying a bunch of different technology to accomplish something novel.</p>
<div class="jetpack-video-wrapper"><iframe class='youtube-player' type='text/html' width='660' height='372' src='https://www.youtube.com/embed/p747PrxmZJ4?version=3&#038;rel=1&#038;fs=1&#038;autohide=2&#038;showsearch=0&#038;showinfo=1&#038;iv_load_policy=1&#038;wmode=transparent' allowfullscreen='true' style='border:0;'></iframe></div>
<p>Before the video went live, <a href="https://twitter.com/DavidMReynolds">the head of the studio</a> sent me a really nice email about the project, and he mentioned that they used one of my <a href="http://www.tannerhelland.com/20/hidden-tears/">free, CC-licensed songs</a> for the end game sequence.  With the email, he also sent a generous donation, and per the &#8220;attribution&#8221; part of the CC license, he also linked to my site from the YouTube video description.  This is a perfect example of how CC licenses are supposed to work, and I couldn&#8217;t be happier about the way they used and attributed my work.</p>
<p>Over the next week, the video&#8217;s popularity exploded, garnering eight million views within a week, and being featured everywhere from #1 on Reddit to dedicated segments on traditional news outlets.  I couldn&#8217;t be happier for the team over at RP, and it was a lot of fun to see my music being shared in exactly the way I always hoped: as a free soundtrack for new, creative projects built on a budget.</p>
<p>Projects like this are a poster child for <a href="http://creativecommons.org/">the Creative Commons movement</a>, and its ability to bring artists together in a far less restrictive way than the traditional copyright movement.  But I wondered &#8211; with Dave and his studio doing absolutely everything right regarding a CC license, including attribution and a link to my work right there on the YouTube page, how many people did it actually send to my site?</p>
<p>I don&#8217;t have a financial stake in my CC-licensed music (it&#8217;s all free to download and/or use), so traffic and downloads don&#8217;t matter, except to provide warm, fuzzy feelings about my work actually being used instead of rotting away on my hard-drive.  So my interest in traffic was purely motivated by curiosity.  Out of 8,000,000 views, how many people clicked the &#8220;Show More&#8221; button and followed the link to this site: 1 in 10?  100?  1000?</p>
<p>After checking my logs (which may not be perfect, obviously), the final referred total was&#8230;</p>
<p>85 visitors from the viral video itself&#8230;<br />
&#8230;and 13 more from the behind-the-scenes video.</p>
<p>I have no idea if these numbers are typical for a &#8220;viral&#8221; YouTube video.  I imagine a ton of the views come from embedded instances, where the descriptive text isn&#8217;t shown, or perhaps from dedicated YouTube apps, where descriptions may not work the same way.  (And even on the main YouTube page, appearing below the fold makes a huge difference.)  Additionally, since my music doesn&#8217;t really appear in the video &#8211; it was more important for the people actually playing the game &#8211; there wouldn&#8217;t be much incentive for viewers to follow the link in the first place.</p>
<p>What&#8217;s interesting to me is that the traffic totals are actually very close to simpler YouTube videos that use my work, like this cute little guy, which has way less views, but in its first year, sent almost identical visitor counts my way:</p>
<div class="jetpack-video-wrapper"><iframe class='youtube-player' type='text/html' width='660' height='372' src='https://www.youtube.com/embed/0MPSBv9uErI?version=3&#038;rel=1&#038;fs=1&#038;autohide=2&#038;showsearch=0&#038;showinfo=1&#038;iv_load_policy=1&#038;wmode=transparent' allowfullscreen='true' style='border:0;'></iframe></div>
<p>Anyway, I thought those visitor counts were interesting.  I know there&#8217;s been some discussion about the effect of YouTube on the music industry, especially with the explosion of &#8220;Let&#8217;s Play&#8221; and other videos that make extensive use of background music, especially CC-licensed tracks like mine.  I hadn&#8217;t seen hard numbers on referral traffic discussed elsewhere, so now there&#8217;s at least one data point!</p>
<p>(Also, many thanks to the team at Realm Pictures for using my work in such a fun project, and for making perfect use of the associated Creative Commons license.  Check out more of their work <a href="http://realm-pictures.co.uk/">at their website</a>.)</p>
]]></content:encoded>
							<wfw:commentRss>http://www.tannerhelland.com/5895/traffic-viral-youtube-video/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
						<post-id xmlns="com-wordpress:feed-additions:1">5895</post-id>	</item>
		<item>
		<title>Site overhaul coming &#8211; apologies for broken links and other bugs</title>
		<link>http://www.tannerhelland.com/5790/site-overhaul-coming/</link>
				<pubDate>Fri, 01 May 2015 14:51:16 +0000</pubDate>
		<dc:creator><![CDATA[Tanner]]></dc:creator>
				<category><![CDATA[Site News]]></category>

		<guid isPermaLink="false">http://www.tannerhelland.com/?p=5790</guid>
				<description><![CDATA[tl;dr: Mobilegeddon (who thinks up these names?) has finally provided the kick I need to get this site overhauled. Apologies in advance for things like messed up formatting and randomly broken links. I first threw together tannerhelland.com on WordPress 2.0. To give you an idea of what life was like back then (2006), the release &#8230; <a href="http://www.tannerhelland.com/5790/site-overhaul-coming/" class="more-link">Continue reading <span class="screen-reader-text">Site overhaul coming &#8211; apologies for broken links and other bugs</span></a>]]></description>
								<content:encoded><![CDATA[<p><a href="http://en.wikipedia.org/wiki/TL;DR">tl;dr</a>: <a href="http://googlewebmastercentral.blogspot.com/2015/02/finding-more-mobile-friendly-search.html">Mobilegeddon</a> (who thinks up these names?) has finally provided the kick I need to get this site overhauled.  Apologies in advance for things like messed up formatting and randomly broken links.</p>
<p>I first threw together tannerhelland.com on WordPress 2.0.  To give you an idea of what life was like back then (2006), the release notes for WP 2.0 included such amazing features as &#8220;rich editing&#8221; and &#8220;image uploading&#8221;.  Be still my soul.</p>
<p>At the time, I was looking to move from a custom-built blog engine to something a little more maintenance-free.  I was experimenting with PHP for the first time, and as part of preparing for &#8220;Web 2.0&#8221;, it seemed like a good language to know.  (Aren&#8217;t buzzwords like &#8220;Web 2.0&#8221; hilarious in retrospect?)  So I hacked together a Frankenstein WP theme, and added a bunch of custom code to handle my typical blog posts, including automated download links for things like code samples and music.</p>
<p>In the years since, those custom code bits have come back to haunt me, especially with the underlying code being written by a PHP beginner.  I can&#8217;t easily move to a new platform without dealing with my various custom link and formatting generators, and I keep putting off the task because I don&#8217;t want the headache of fixing my old code.</p>
<p>But last week, I got a notification that the site had passed a million pageviews, which was kind of a fun symbolic mark&#8230; but also a reminder of &#8220;oh crap I am still terrible at this blog thing,&#8221; as evidenced by a full year passing since I&#8217;ve posted anything new.  This is unfortunate, as I&#8217;ve been doing a lot of neat work on <a href="http://photodemon.org/">my open-source photo editor</a>, the kind of work I think would be helpful to talk about in more detail.  My latest project is parsing font files and converting glyphs to standard Windows GraphicsPath objects, which has been both fun and terrifying, and if my adventures could save some other poor soul the time and effort of reverse-engineering Stygian APIs like <a href="http://en.wikipedia.org/wiki/Uniscribe">Uniscribe</a>, I&#8217;d love to write more about it.</p>
<p>Anyway, all this, combined with the need for a responsive site design, has motivated me to finally deal with my terrible old WordPress code.  There&#8217;s no easy way to do this, and I&#8217;ve coded long enough to know that things are going to break no matter how much testing I do, so thanks in advance for your patience with a semi-working site over the next few weeks.</p>
<p>I hope the end result is a much simpler, mobile-friendly site design, and even fewer barriers standing in my way of talking about weird (and hopefully interesting) new projects.  In the meantime, if you need to download a code sample or mp3 or anything else but the link is broken, you can let me know from the <a href="http://photodemon.org/about/contact/">PhotoDemon contact page</a> (which won&#8217;t be affected by the current overhaul).</p>
]]></content:encoded>
									<post-id xmlns="com-wordpress:feed-additions:1">5790</post-id>	</item>
		<item>
		<title>Simple algorithms for adjusting image temperature and tint</title>
		<link>http://www.tannerhelland.com/5675/simple-algorithms-adjusting-image-temperature-tint/</link>
				<pubDate>Tue, 01 Jul 2014 13:00:26 +0000</pubDate>
		<dc:creator><![CDATA[Tanner]]></dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Graphics Code]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[color temperature]]></category>
		<category><![CDATA[tint]]></category>

		<guid isPermaLink="false">http://www.tannerhelland.com/?p=5675</guid>
				<description><![CDATA[I've already talked at length about <a href="http://www.tannerhelland.com/4435/convert-temperature-rgb-algorithm-code/">converting a temperature (in Kelvin) to an RGB triplet</a>.  But what if you simply want to adjust an image's temperature, without caring about the specifics of it?  This article is for you.  As a bonus, source code is also provided for tint adjustments.]]></description>
								<content:encoded><![CDATA[<p>I&#8217;ve already talked at length about <a href="http://www.tannerhelland.com/4435/convert-temperature-rgb-algorithm-code/">converting a temperature (in Kelvin) to an RGB triplet</a>.  But what if you simply want to adjust an image&#8217;s temperature, without caring about the specifics of it?</p>
<p>Here&#8217;s how:</p>
<p><code></p>
<pre>Given a temperature adjustment on the range -100 to 100,
 apply the following adjustment to each pixel in the image:

r = r + adjustmentValue
g = g
b = b - adjustmentValue
</pre>
<p></code></p>
<p>As with any additive RGB adjustment, you&#8217;ll need to manually clip the output values to the [0, 255] range.</p>
<p>Here&#8217;s a sample of the output, as implemented in the latest development build of <a href="http://photodemon.org/">my open-source photo editor</a>.  Note the temperature slider at the bottom of the screen.  Because I find the -100 to 100 range to be a bit too strong, I actually divide the adjustment value by 5, thus limiting the actual adjustment value from -20 to 20:</p>
<figure id="attachment_5676" aria-describedby="caption-attachment-5676" style="width: 600px" class="wp-caption aligncenter"><a href="http://www.tannerhelland.com/5675/simple-algorithms-adjusting-image-temperature-tint/temp_tint_base_image/" rel="attachment wp-att-5676"><img data-attachment-id="5676" data-permalink="http://www.tannerhelland.com/5675/simple-algorithms-adjusting-image-temperature-tint/temp_tint_base_image/" data-orig-file="http://www.tannerhelland.com/wp-content/uploads/temp_tint_base_image.jpg" data-orig-size="1305,888" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="temp_tint_base_image" data-image-description="&lt;p&gt;Base image, courtesy of http://en.wikipedia.org/wiki/Great_wall#mediaviewer/File:The_Great_Wall_of_China_at_Jinshanling.jpg&lt;/p&gt;
" data-medium-file="http://www.tannerhelland.com/wp-content/uploads/temp_tint_base_image-300x204.jpg" data-large-file="http://www.tannerhelland.com/wp-content/uploads/temp_tint_base_image-600x408.jpg" src="http://www.tannerhelland.com/wp-content/uploads/temp_tint_base_image-600x408.jpg" alt="temp_tint_base_image" width="600" height="408" class="aligncenter size-large wp-image-5676" srcset="http://www.tannerhelland.com/wp-content/uploads/temp_tint_base_image-600x408.jpg 600w, http://www.tannerhelland.com/wp-content/uploads/temp_tint_base_image-300x204.jpg 300w, http://www.tannerhelland.com/wp-content/uploads/temp_tint_base_image-180x122.jpg 180w, http://www.tannerhelland.com/wp-content/uploads/temp_tint_base_image-50x34.jpg 50w, http://www.tannerhelland.com/wp-content/uploads/temp_tint_base_image-75x51.jpg 75w, http://www.tannerhelland.com/wp-content/uploads/temp_tint_base_image-900x612.jpg 900w, http://www.tannerhelland.com/wp-content/uploads/temp_tint_base_image-200x136.jpg 200w, http://www.tannerhelland.com/wp-content/uploads/temp_tint_base_image.jpg 1305w" sizes="(max-width: 600px) 100vw, 600px" /></a><figcaption id="caption-attachment-5676" class="wp-caption-text">Base image, courtesy of <a href="http://en.wikipedia.org/wiki/Great_wall">http://en.wikipedia.org/wiki/Great_wall</a></figcaption></figure>
<figure id="attachment_5677" aria-describedby="caption-attachment-5677" style="width: 600px" class="wp-caption aligncenter"><a href="http://www.tannerhelland.com/5675/simple-algorithms-adjusting-image-temperature-tint/temp_up/" rel="attachment wp-att-5677"><img data-attachment-id="5677" data-permalink="http://www.tannerhelland.com/5675/simple-algorithms-adjusting-image-temperature-tint/temp_up/" data-orig-file="http://www.tannerhelland.com/wp-content/uploads/temp_up.jpg" data-orig-size="1305,888" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="temp_up" data-image-description="" data-medium-file="http://www.tannerhelland.com/wp-content/uploads/temp_up-300x204.jpg" data-large-file="http://www.tannerhelland.com/wp-content/uploads/temp_up-600x408.jpg" src="http://www.tannerhelland.com/wp-content/uploads/temp_up-600x408.jpg" alt="Temperature at max value (+20)" width="600" height="408" class="size-large wp-image-5677" srcset="http://www.tannerhelland.com/wp-content/uploads/temp_up-600x408.jpg 600w, http://www.tannerhelland.com/wp-content/uploads/temp_up-300x204.jpg 300w, http://www.tannerhelland.com/wp-content/uploads/temp_up-180x122.jpg 180w, http://www.tannerhelland.com/wp-content/uploads/temp_up-50x34.jpg 50w, http://www.tannerhelland.com/wp-content/uploads/temp_up-75x51.jpg 75w, http://www.tannerhelland.com/wp-content/uploads/temp_up-900x612.jpg 900w, http://www.tannerhelland.com/wp-content/uploads/temp_up-200x136.jpg 200w, http://www.tannerhelland.com/wp-content/uploads/temp_up.jpg 1305w" sizes="(max-width: 600px) 100vw, 600px" /></a><figcaption id="caption-attachment-5677" class="wp-caption-text">Temperature at max value (+20).  Note the warmer tones.</figcaption></figure>
<figure id="attachment_5678" aria-describedby="caption-attachment-5678" style="width: 600px" class="wp-caption aligncenter"><a href="http://www.tannerhelland.com/5675/simple-algorithms-adjusting-image-temperature-tint/temp_down/" rel="attachment wp-att-5678"><img data-attachment-id="5678" data-permalink="http://www.tannerhelland.com/5675/simple-algorithms-adjusting-image-temperature-tint/temp_down/" data-orig-file="http://www.tannerhelland.com/wp-content/uploads/temp_down.jpg" data-orig-size="1305,888" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="temp_down" data-image-description="" data-medium-file="http://www.tannerhelland.com/wp-content/uploads/temp_down-300x204.jpg" data-large-file="http://www.tannerhelland.com/wp-content/uploads/temp_down-600x408.jpg" src="http://www.tannerhelland.com/wp-content/uploads/temp_down-600x408.jpg" alt="Temperature at min value (-20)" width="600" height="408" class="size-large wp-image-5678" srcset="http://www.tannerhelland.com/wp-content/uploads/temp_down-600x408.jpg 600w, http://www.tannerhelland.com/wp-content/uploads/temp_down-300x204.jpg 300w, http://www.tannerhelland.com/wp-content/uploads/temp_down-180x122.jpg 180w, http://www.tannerhelland.com/wp-content/uploads/temp_down-50x34.jpg 50w, http://www.tannerhelland.com/wp-content/uploads/temp_down-75x51.jpg 75w, http://www.tannerhelland.com/wp-content/uploads/temp_down-900x612.jpg 900w, http://www.tannerhelland.com/wp-content/uploads/temp_down-200x136.jpg 200w, http://www.tannerhelland.com/wp-content/uploads/temp_down.jpg 1305w" sizes="(max-width: 600px) 100vw, 600px" /></a><figcaption id="caption-attachment-5678" class="wp-caption-text">Temperature at min value (-20).  Note the cooler tones.</figcaption></figure>
<p>Pretty simple!</p>
<p>Because temperature and tint adjustments are usually provided together, here&#8217;s the code for basic tint adjustments.  It&#8217;s even simper than temperature:</p>
<p><code></p>
<pre>Given a tint adjustment on the range -100 to 100, 
 apply the following adjustment to each pixel in the image:

r = r 
g = g + adjustmentValue
b = b 
</pre>
<p></code></p>
<p>Sample output, using the same sample image from above (note the tint slider at the bottom):</p>
<figure id="attachment_5681" aria-describedby="caption-attachment-5681" style="width: 600px" class="wp-caption aligncenter"><a href="http://www.tannerhelland.com/5675/simple-algorithms-adjusting-image-temperature-tint/tint_up/" rel="attachment wp-att-5681"><img data-attachment-id="5681" data-permalink="http://www.tannerhelland.com/5675/simple-algorithms-adjusting-image-temperature-tint/tint_up/" data-orig-file="http://www.tannerhelland.com/wp-content/uploads/tint_up.jpg" data-orig-size="1305,888" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="tint_up" data-image-description="" data-medium-file="http://www.tannerhelland.com/wp-content/uploads/tint_up-300x204.jpg" data-large-file="http://www.tannerhelland.com/wp-content/uploads/tint_up-600x408.jpg" src="http://www.tannerhelland.com/wp-content/uploads/tint_up-600x408.jpg" alt="Tint at max value (+20).  Hard to tell as the image is already very green, but the green has actually been ramped up further." width="600" height="408" class="size-large wp-image-5681" srcset="http://www.tannerhelland.com/wp-content/uploads/tint_up-600x408.jpg 600w, http://www.tannerhelland.com/wp-content/uploads/tint_up-300x204.jpg 300w, http://www.tannerhelland.com/wp-content/uploads/tint_up-180x122.jpg 180w, http://www.tannerhelland.com/wp-content/uploads/tint_up-50x34.jpg 50w, http://www.tannerhelland.com/wp-content/uploads/tint_up-75x51.jpg 75w, http://www.tannerhelland.com/wp-content/uploads/tint_up-900x612.jpg 900w, http://www.tannerhelland.com/wp-content/uploads/tint_up-200x136.jpg 200w, http://www.tannerhelland.com/wp-content/uploads/tint_up.jpg 1305w" sizes="(max-width: 600px) 100vw, 600px" /></a><figcaption id="caption-attachment-5681" class="wp-caption-text">Tint at max value (+20).  Hard to tell as the image is already very green, but the green has actually been ramped up further.</figcaption></figure>
<figure id="attachment_5682" aria-describedby="caption-attachment-5682" style="width: 600px" class="wp-caption aligncenter"><a href="http://www.tannerhelland.com/5675/simple-algorithms-adjusting-image-temperature-tint/tint_down/" rel="attachment wp-att-5682"><img data-attachment-id="5682" data-permalink="http://www.tannerhelland.com/5675/simple-algorithms-adjusting-image-temperature-tint/tint_down/" data-orig-file="http://www.tannerhelland.com/wp-content/uploads/tint_down.jpg" data-orig-size="1305,888" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="tint_down" data-image-description="" data-medium-file="http://www.tannerhelland.com/wp-content/uploads/tint_down-300x204.jpg" data-large-file="http://www.tannerhelland.com/wp-content/uploads/tint_down-600x408.jpg" src="http://www.tannerhelland.com/wp-content/uploads/tint_down-600x408.jpg" alt="Tint at minimum value (-20).  Note the magenta color cast." width="600" height="408" class="size-large wp-image-5682" srcset="http://www.tannerhelland.com/wp-content/uploads/tint_down-600x408.jpg 600w, http://www.tannerhelland.com/wp-content/uploads/tint_down-300x204.jpg 300w, http://www.tannerhelland.com/wp-content/uploads/tint_down-180x122.jpg 180w, http://www.tannerhelland.com/wp-content/uploads/tint_down-50x34.jpg 50w, http://www.tannerhelland.com/wp-content/uploads/tint_down-75x51.jpg 75w, http://www.tannerhelland.com/wp-content/uploads/tint_down-900x612.jpg 900w, http://www.tannerhelland.com/wp-content/uploads/tint_down-200x136.jpg 200w, http://www.tannerhelland.com/wp-content/uploads/tint_down.jpg 1305w" sizes="(max-width: 600px) 100vw, 600px" /></a><figcaption id="caption-attachment-5682" class="wp-caption-text">Tint at minimum value (-20).  Note the magenta color cast.</figcaption></figure>
<p>This might be the simplest image processing algorithm I&#8217;ve ever posted&#8230;  :)</p>
]]></content:encoded>
									<post-id xmlns="com-wordpress:feed-additions:1">5675</post-id>	</item>
		<item>
		<title>PhotoDemon 6.2 beta live &#8211; testers welcome!</title>
		<link>http://www.tannerhelland.com/5474/photodemon-62-beta-live/</link>
				<pubDate>Fri, 21 Feb 2014 16:43:58 +0000</pubDate>
		<dc:creator><![CDATA[Tanner]]></dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Graphics Code]]></category>
		<category><![CDATA[PhotoDemon]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[beta release]]></category>
		<category><![CDATA[PhotoDemon 6.2]]></category>

		<guid isPermaLink="false">http://www.tannerhelland.com/?p=5474</guid>
				<description><![CDATA[The latest version of PhotoDemon includes an overhauled interface, cool new tools (like Content-Aware resize), WebP and JPEG-XR support, and so much more.  <a href="http://photodemon.org/681/photodemon-6-2-beta-is-live/">Get it here.</a>]]></description>
								<content:encoded><![CDATA[<p><em>(Apologies for the dearth of blog posts over the past few months.  The holidays always throw off my schedule, and it takes some time to get things back in order.  I&#8217;ll try to make more time for articles!)</em></p>
<figure id="attachment_5475" aria-describedby="caption-attachment-5475" style="width: 600px" class="wp-caption aligncenter"><a href="http://www.tannerhelland.com/5474/photodemon-62-beta-live/pd_6-2-beta/" rel="attachment wp-att-5475"><img data-attachment-id="5475" data-permalink="http://www.tannerhelland.com/5474/photodemon-62-beta-live/pd_6-2-beta/" data-orig-file="http://www.tannerhelland.com/wp-content/uploads/PD_6-2-beta.jpg" data-orig-size="1064,758" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="PD_6-2-beta" data-image-description="" data-medium-file="http://www.tannerhelland.com/wp-content/uploads/PD_6-2-beta-300x213.jpg" data-large-file="http://www.tannerhelland.com/wp-content/uploads/PD_6-2-beta-600x427.jpg" src="http://www.tannerhelland.com/wp-content/uploads/PD_6-2-beta-600x427.jpg" alt="A new version of PhotoDemon includes an overhauled interface, lots of new tools (including cool things like Content-Aware resize), WebP and JPEG-XR support, and so much more.  Get it here." width="600" height="427" class="size-large wp-image-5475" srcset="http://www.tannerhelland.com/wp-content/uploads/PD_6-2-beta-600x427.jpg 600w, http://www.tannerhelland.com/wp-content/uploads/PD_6-2-beta-300x213.jpg 300w, http://www.tannerhelland.com/wp-content/uploads/PD_6-2-beta-180x128.jpg 180w, http://www.tannerhelland.com/wp-content/uploads/PD_6-2-beta-50x35.jpg 50w, http://www.tannerhelland.com/wp-content/uploads/PD_6-2-beta-75x53.jpg 75w, http://www.tannerhelland.com/wp-content/uploads/PD_6-2-beta-900x641.jpg 900w, http://www.tannerhelland.com/wp-content/uploads/PD_6-2-beta-200x142.jpg 200w, http://www.tannerhelland.com/wp-content/uploads/PD_6-2-beta.jpg 1064w" sizes="(max-width: 600px) 100vw, 600px" /></a><figcaption id="caption-attachment-5475" class="wp-caption-text">The latest version of PhotoDemon includes an overhauled interface, cool new tools (like Content-Aware resize), WebP and JPEG-XR support, and so much more.  <a href="http://photodemon.org/681/photodemon-6-2-beta-is-live/">Get it here.</a></figcaption></figure>
<p>A new version of PhotoDemon is about ready to release, and anyone who can help give it a final round of testing is most appreciated.  Download the 6.2 beta here:</p>
<p><a href="http://www.photodemon.org/downloads/PhotoDemon_6.2_beta.zip">http://www.photodemon.org/downloads/PhotoDemon_6.2_beta.zip</a></p>
<p><a href="http://photodemon.org/681/photodemon-6-2-beta-is-live/">The announcement article on photodemon.org</a> contains a full run-down of all the new features, but let me mirror a few here for the curious:</p>
<h2 class="cv_title">Brand-new interface</h2>
<p><a href="http://photodemon.org/wp-content/uploads/2014/02/PD_6-2-beta.jpg"><img src="http://photodemon.org/wp-content/uploads/2014/02/PD_6-2-beta-570x406.jpg" alt="PD_6-2-beta" width="570" height="406" class="aligncenter size-medium wp-image-684" /></a></p>
<p>The old MDI &#8220;floating-window&#8221; interface is gone for good.  In its place is a sleek, lightweight tabbed interface.</p>
<h2 class="cv_title">Color-Managed Workflow</h2>
<p><a href="http://photodemon.org/wp-content/uploads/2014/02/Color_Managed_Workflow.jpg"><img src="http://photodemon.org/wp-content/uploads/2014/02/Color_Managed_Workflow-570x394.jpg" alt="Color_Managed_Workflow" width="570" height="394" class="aligncenter size-medium wp-image-685" /></a></p>
<p>This was a huge project, and an exciting addition for both casual and professional users.  PhotoDemon now provides a fully color-managed workflow across the entire program (including the main viewport, all tool dialogs, and even small things like color selection dialogs).</p>
<h2 class="cv_title">New color selector</h2>
<p><a href="http://photodemon.org/wp-content/uploads/2014/02/PhotoDemon_Color_Selection.jpg"><img src="http://photodemon.org/wp-content/uploads/2014/02/PhotoDemon_Color_Selection-570x317.jpg" alt="PhotoDemon_Color_Selection" width="570" height="317" class="aligncenter size-medium wp-image-691" /></a></p>
<p>Major improvement over the stock Windows color selection dialog (which hasn&#8217;t changed in 20 years).  Many thanks to the open-source photo editor GIMP, whose color selector served as the primary inspiration for this one.</p>
<h2 class="cv_title">Comprehensive Resize options</h2>
<p><a href="http://photodemon.org/wp-content/uploads/2014/02/PhotoDemon_Resize_Dialog1.jpg"><img src="http://photodemon.org/wp-content/uploads/2014/02/PhotoDemon_Resize_Dialog1-570x462.jpg" alt="PhotoDemon_Resize_Dialog" width="570" height="462" class="aligncenter size-medium wp-image-698" /></a></p>
<p>In past versions, PhotoDemon always required you to resize images using pixel values &#8211; but no more!  All resize dialogs (Image Resize, Canvas Resize, etc) now support resizing by pixels, percent, or physical units (inches, cm).</p>
<h2 class="cv_title">All-new JPEG export dialog</h2>
<p><a href="http://photodemon.org/wp-content/uploads/2014/02/PhotoDemon_Export_JPEG_Final.jpg"><img src="http://photodemon.org/wp-content/uploads/2014/02/PhotoDemon_Export_JPEG_Final-570x302.jpg" alt="PhotoDemon_Export_JPEG_Final" width="570" height="302" class="aligncenter size-medium wp-image-701" /></a></p>
<p><a href="http://photodemon.org/wp-content/uploads/2014/02/PhotoDemon_Export_JPEG_Final_Metadata.jpg"><img src="http://photodemon.org/wp-content/uploads/2014/02/PhotoDemon_Export_JPEG_Final_Metadata-570x302.jpg" alt="PhotoDemon_Export_JPEG_Final_Metadata" width="570" height="302" class="aligncenter size-medium wp-image-702" /></a></p>
<p>As the most common image format, JPEGs deserve special consideration.  PhotoDemon&#8217;s new JPEG export dialog provides many new features, including the ability to have the software automatically determine an appropriate quality setting for you.</p>
<h2 class="cv_title">WebP and JPEG-XR support (import and export)</h2>
<p>I don&#8217;t know if anyone uses these formats, but they&#8217;re there if you need &#8217;em!</p>
<h2 class="cv_title">New Autosave feature</h2>
<p><a href="http://photodemon.org/wp-content/uploads/2014/02/PhotoDemon_Autosave_Dialog.jpg"><img src="http://photodemon.org/wp-content/uploads/2014/02/PhotoDemon_Autosave_Dialog-570x448.jpg" alt="PhotoDemon_Autosave_Dialog" width="570" height="448" class="aligncenter size-medium wp-image-705" /></a></p>
<h2 class="cv_title">New Content-Aware Resize tool</h2>
<figure id="attachment_706" aria-describedby="caption-attachment-706" style="width: 570px" class="wp-caption aligncenter"><a href="http://photodemon.org/wp-content/uploads/2014/02/Broadway_tower_before.jpg"><img src="http://photodemon.org/wp-content/uploads/2014/02/Broadway_tower_before-570x386.jpg" alt="Initial image, courtesy of Wikipedia (http://en.wikipedia.org/wiki/File:Broadway_tower_edit.jpg)." width="570" height="386" class="size-medium wp-image-706" /></a><figcaption id="caption-attachment-706" class="wp-caption-text">Initial image, courtesy of Wikipedia (<a href="http://en.wikipedia.org/wiki/File:Broadway_tower_edit.jpg">http://en.wikipedia.org/wiki/File:Broadway_tower_edit.jpg</a>).</figcaption></figure>
<figure id="attachment_707" aria-describedby="caption-attachment-707" style="width: 570px" class="wp-caption aligncenter"><a href="http://photodemon.org/wp-content/uploads/2014/02/Broadway_tower_normal_resize.jpg"><img src="http://photodemon.org/wp-content/uploads/2014/02/Broadway_tower_normal_resize-570x570.jpg" alt="Image resized using a standard resize algorithm.  Note the undesirable stretching." width="570" height="570" class="size-medium wp-image-707" /></a><figcaption id="caption-attachment-707" class="wp-caption-text">Image resized using a standard resize algorithm.  Note the undesirable stretching.</figcaption></figure>
<figure id="attachment_708" aria-describedby="caption-attachment-708" style="width: 570px" class="wp-caption aligncenter"><a href="http://photodemon.org/wp-content/uploads/2014/02/Broadway_tower_content_aware_resize.jpg"><img src="http://photodemon.org/wp-content/uploads/2014/02/Broadway_tower_content_aware_resize-570x570.jpg" alt="The same image, resized using a content-aware algorithm.  Uninteresting features (like sky and grass) have been shrunk preferentially, leaving the interesting features (person, castle) intact." width="570" height="570" class="size-medium wp-image-708" /></a><figcaption id="caption-attachment-708" class="wp-caption-text">The same image, resized using a content-aware algorithm.  Uninteresting features (like sky and grass) have been shrunk preferentially, leaving the interesting features (person, castle) intact.</figcaption></figure>
<p>Content-aware resize is a cutting-edge technique for resizing images without distorting their contents.  It was recently added to PhotoShop in version CS4, and nearly all free photo editors lack a comparable tool &#8211; but not PhotoDemon!</p>
<h2 class="cv_title">Improved tool previews</h2>
<p><a href="http://photodemon.org/wp-content/uploads/2014/02/updated-vignetting-tool.jpg"><img src="http://photodemon.org/wp-content/uploads/2014/02/updated-vignetting-tool-570x325.jpg" alt="updated vignetting tool" width="570" height="325" class="aligncenter size-medium wp-image-711" /></a></p>
<p>Tool dialogs now provide an option to toggle between &#8220;fit whole image on screen&#8221; and &#8220;show image at 100%&#8221;.  When showing the image at 100%, the image can be click-dragged, so even large images can be fully inspected.  Also, the preview tool now supports &#8220;click to set a center point&#8221; behavior when relevant.</p>
<h2 class="cv_title">Asynchronous image metadata handling</h2>
<p>Parsing image metadata occupies a huge chunk of the image load process.  To improve performance, metadata handling is now completely asynchronous, meaning it will operate in parallel with the rest of the image loading process.</p>
<h2 class="cv_title">Improved Screen Capture tool</h2>
<p><a href="http://photodemon.org/wp-content/uploads/2014/02/PhotoDemon_Screenshot_Dialog.jpg"><img src="http://photodemon.org/wp-content/uploads/2014/02/PhotoDemon_Screenshot_Dialog-570x321.jpg" alt="PhotoDemon_Screenshot_Dialog" width="570" height="321" class="aligncenter size-medium wp-image-712" /></a></p>
<p>Individual program windows can now be selected from a list, with or without their window decorations (titlebar, borders, etc).</p>
<h2 class="cv_title">And lots more&#8230;</h2>
<p>Check out the <a href="http://photodemon.org/681/photodemon-6-2-beta-is-live/">official beta announcement at photodemon.org</a> for a full list of updates and improvements.</p>
]]></content:encoded>
									<post-id xmlns="com-wordpress:feed-additions:1">5474</post-id>	</item>
		<item>
		<title>PhotoDemon 6.0 is now live at photodemon.org</title>
		<link>http://www.tannerhelland.com/5203/photodemon-60-live/</link>
				<pubDate>Mon, 30 Sep 2013 22:50:45 +0000</pubDate>
		<dc:creator><![CDATA[Tanner]]></dc:creator>
				<category><![CDATA[Graphics Code]]></category>
		<category><![CDATA[PhotoDemon]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://www.tannerhelland.com/?p=5203</guid>
				<description><![CDATA[After a successful (and relatively bug-free!) beta testing session, PhotoDemon 6.0 has been deemed "ready for mass consumption".  Normally this is where I would put a download link, but let me instead refer you to the new home of all things PhotoDemon: <a href="http://photodemon.org/">photodemon.org</a>...]]></description>
								<content:encoded><![CDATA[<figure id="attachment_5204" aria-describedby="caption-attachment-5204" style="width: 600px" class="wp-caption aligncenter"><a href="http://www.tannerhelland.com/5203/photodemon-60-live-photodemonorg/splash_2013/" rel="attachment wp-att-5204"><img data-attachment-id="5204" data-permalink="http://www.tannerhelland.com/5203/photodemon-60-live/splash_2013/" data-orig-file="http://www.tannerhelland.com/wp-content/uploads/splash_2013.jpg" data-orig-size="779,551" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="splash_2013" data-image-description="" data-medium-file="http://www.tannerhelland.com/wp-content/uploads/splash_2013-300x212.jpg" data-large-file="http://www.tannerhelland.com/wp-content/uploads/splash_2013-600x424.jpg" src="http://www.tannerhelland.com/wp-content/uploads/splash_2013-600x424.jpg" alt="The final splash screen for version 6.0.  Thank you again to all the talented contributors that made this release possible!" width="600" height="424" class="size-large wp-image-5204" srcset="http://www.tannerhelland.com/wp-content/uploads/splash_2013-600x424.jpg 600w, http://www.tannerhelland.com/wp-content/uploads/splash_2013-300x212.jpg 300w, http://www.tannerhelland.com/wp-content/uploads/splash_2013-180x127.jpg 180w, http://www.tannerhelland.com/wp-content/uploads/splash_2013-50x35.jpg 50w, http://www.tannerhelland.com/wp-content/uploads/splash_2013-75x53.jpg 75w, http://www.tannerhelland.com/wp-content/uploads/splash_2013-200x141.jpg 200w, http://www.tannerhelland.com/wp-content/uploads/splash_2013.jpg 779w" sizes="(max-width: 600px) 100vw, 600px" /></a><figcaption id="caption-attachment-5204" class="wp-caption-text">The final splash screen for version 6.0.  Thank you again to all the talented contributors that made this release possible!</figcaption></figure>
<p>After a successful (and relatively bug-free!) beta testing session, PhotoDemon 6.0 has been deemed &#8220;ready for mass consumption&#8221;.  Normally this is where I would put a download link, but let me instead refer you to the new home of all things PhotoDemon: <a href="http://photodemon.org/">photodemon.org</a></p>
<p>I thought it was finally time for PD to get its own online home, and <a href="http://photodemon.org/">photodemon.org</a> is the result.  The site still has a few pieces left to assemble (most notably the Features section, which is only about half done), but I didn&#8217;t want that to delay the availability of 6.0&#8217;s release.</p>
<p>You can download version 6.0 from <a href="http://photodemon.org/download/">the &#8220;Downloads&#8221; section of the new site</a>, or from this direct link:</p>
<p><a href="http://photodemon.org/downloads/PhotoDemon_6.0.zip">Download PhotoDemon 6.0 (.zip file, 6.3 mb)</a></p>
<p>Functionally, this release is very similar to <a href="http://www.tannerhelland.com/5106/photodemon-60-beta/">the 6.0 beta</a> that launched two weeks ago.  The primary changes from the beta are miscellaneous bug fixes, performance improvements, and cosmetic adjustments.</p>
<p>If you are upgrading from version 5.4, you&#8217;re going to notice a lot of new things!  You can get a full write-up of all the improvements <a href="http://www.tannerhelland.com/5106/photodemon-60-beta/">here</a>, or if you&#8217;re in a hurry, here is the abbreviated list of updates:</p>
<ul>
<li>All tools now support save/load presets, reset to default, randomize, and automatic save/load of last-used settings.</li>
<li>Italian language support.</li>
<li>Vastly improved support for non-US locales and non-English users.</li>
<li>Advanced selection tools, including rectangular, elliptical, and line selections.</li>
<li>All selection types now support feathering, live move/resize, interior/exterior/border types, and antialiasing.</li>
<li>Selection actions are fully integrated into Undo/Redo, and selections can be saved to disk.</li>
<li>Full preservation of all types of image metadata (EXIF, XMP, IPTC, etc).  Metadata can be browsed via a new metadata browser.</li>
<li>Official RAW image format support; more than 20 RAW filetypes are now supported.</li>
<li>Three new blur tools: motion, radial, and zoom blur.  Also, big improvements to Gaussian and Box Blur.</li>
<li>A new chroma key (“green screen”) tool with performance comparable to professional tools, including full support for edge blending.</li>
<li>New Perspective tool, with support for forward and reverse transforms.</li>
<li>New Photo Filter tool, with support for 50 digital photo filters (Wratten-type).</li>
<li>New Curves tool.  Supports adding, moving, and removing an unlimited number of nodes.</li>
<li>New Channel Mixer tool.</li>
<li>New Canvas Resize tool.</li>
<li>New Spherize tool (for wrapping images around spheres).</li>
<li>New Vibrance tool.</li>
<li>New Pan and Zoom, Poke, Shear, and Squish distortion tools.</li>
<li>A new Language Editor for translators.</li>
<li>New variable-strength Sharpen tool.</li>
<li>New Oil Painting tool.</li>
<li>Many improvements to the Batch Wizard, including dedicated options for batch resizing.</li>
<li>Minor improvements to many tools, including polar coordinate conversion, wave distort, ripple distort, figured glass, tile image, posterize, rotate, custom filters, histogram, resize.</li>
<li>Any tool with a “color” option now allows you to pick a color directly from the image by clicking the preview.</li>
<li>Much better support for high-DPI screens, including tablets.</li>
<li>Support for transparent clipboard images, allowing you to move layered images between GIMP and PhotoDemon.</li>
<li>Filters and other long-running actions can now be canceled mid-action by pressing ESC.</li>
</ul>
<h2><a name="acknowledgments"></a>Acknowledgments</h2>
<p>This 6.0 release represents six months of hard work from a variety of contributors.  While I am very grateful to all of PhotoDemon&#8217;s talented contributors, a few deserve special mention.  Thank you to:</p>
<ul>
<li><a href="https://github.com/audioglider">Audioglider</a> for contributing three new tools: Channel Mixer, Vibrance, and Exposure.  Audioglider also reported a number of issues, and motivated me to implement preset support for every PD tool.</li>
<li><a href="http://www.planetsourcecode.com/vb/scripts/BrowseCategoryOrSearchResults.asp?lngWId=1&#038;blnAuthorSearch=TRUE&#038;lngAuthorId=2213335741&#038;strAuthorName=Frank%20Donckers&#038;txtMaxNumberOfEntriesPerPage=25">Frank Donckers</a> for again providing the German, French, and Dutch translations, and for contributing many pieces of code to the new Language Editor, including the Google Translate interface.  Amazing stuff.</li>
<li><a href="http://www.planetsourcecode.com/vb/scripts/BrowseCategoryOrSearchResults.asp?lngWId=1&#038;blnAuthorSearch=TRUE&#038;lngAuthorId=77440558266&#038;strAuthorName=GioRock&#038;txtMaxNumberOfEntriesPerPage=25">GioRock</a> for the Italian translation, and for detailed testing of many small translation items.  It takes a ton of work to get all of PD&#8217;s text translating properly, and GioRock debugged many items for me, which benefits users of every language.</li>
<li><a href="http://camendesign.com/">Kroc Camen</a> for a new IDE-safe mouse interface class, derived from his own <a href="https://github.com/Kroc/MaSS1VE">open-source VB project</a>.  Kroc also reviews many of PD&#8217;s individual commits, where he catches many small items I overlook.</li>
<li><a href="http://www.planetsourcecode.com/vb/scripts/ShowCode.asp?txtCodeId=66991&#038;lngWId=1">Robert Rayment</a> for helping me profile and optimize a number of PD&#8217;s more taxing functions, and for many suggestions on tweaks and improvements.  Many of the performance improvements available in this new version are a result of Robert&#8217;s help.  Please check out his own <a href="http://www.planetsourcecode.com/vb/scripts/ShowCode.asp?txtCodeId=66991&#038;lngWId=1">VB image editor</a> if you can.</li>
</ul>
<h2><a name="acknowledgments"></a>Enjoy!</h2>
<p>I hope you enjoy version 6.0.  If you have any feedback, please <a href="http://www.tannerhelland.com/contact/">send me a message</a>.  I&#8217;d love to hear from you.</p>
]]></content:encoded>
									<post-id xmlns="com-wordpress:feed-additions:1">5203</post-id>	</item>
		<item>
		<title>PhotoDemon 6.0 beta is live</title>
		<link>http://www.tannerhelland.com/5106/photodemon-60-beta/</link>
				<comments>http://www.tannerhelland.com/5106/photodemon-60-beta/#comments</comments>
				<pubDate>Thu, 19 Sep 2013 18:22:13 +0000</pubDate>
		<dc:creator><![CDATA[Tanner]]></dc:creator>
				<category><![CDATA[PhotoDemon]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Site News]]></category>
		<category><![CDATA[GIMP]]></category>
		<category><![CDATA[Graphics]]></category>
		<category><![CDATA[graphics programming]]></category>
		<category><![CDATA[image processing]]></category>
		<category><![CDATA[Photoshop]]></category>
		<category><![CDATA[VB]]></category>
		<category><![CDATA[VB6]]></category>
		<category><![CDATA[vb6 graphics]]></category>

		<guid isPermaLink="false">http://www.tannerhelland.com/?p=5106</guid>
				<description><![CDATA[It's taken nearly six months, but PhotoDemon 6.0 is finally ready for release.  I've <a href="http://www.tannerhelland.com/4996/photodemon-60-preview/">already talked about some of the great features this release includes</a>, like powerful selection tools, EXIF and other metadata support, Curves and other new tools, so I'd recommend glancing through the linked article if you're curious.  Since that article was written, a number of other features have been added or improved...]]></description>
								<content:encoded><![CDATA[<figure id="attachment_5163" aria-describedby="caption-attachment-5163" style="width: 600px" class="wp-caption aligncenter"><a href="http://www.tannerhelland.com/5106/photodemon-60-beta/pd_chroma_key_after/" rel="attachment wp-att-5163"><img src="http://www.tannerhelland.com/wp-content/uploads/PD_chroma_key_after-600x350.jpg" alt="Chroma key (green screen) is one of many new tools in this release." width="600" height="350" class="size-large wp-image-5163" srcset="http://www.tannerhelland.com/wp-content/uploads/PD_chroma_key_after-600x350.jpg 600w, http://www.tannerhelland.com/wp-content/uploads/PD_chroma_key_after-300x175.jpg 300w, http://www.tannerhelland.com/wp-content/uploads/PD_chroma_key_after-180x105.jpg 180w, http://www.tannerhelland.com/wp-content/uploads/PD_chroma_key_after-50x29.jpg 50w, http://www.tannerhelland.com/wp-content/uploads/PD_chroma_key_after-75x43.jpg 75w, http://www.tannerhelland.com/wp-content/uploads/PD_chroma_key_after-200x116.jpg 200w, http://www.tannerhelland.com/wp-content/uploads/PD_chroma_key_after.jpg 804w" sizes="(max-width: 600px) 100vw, 600px" /></a><figcaption id="caption-attachment-5163" class="wp-caption-text">Chroma key (green screen) is one of many new tools in this release.</figcaption></figure>
<h2 class="cv_title"><a name="download"></a>Download</h2>
<div class="download_code"><a href="http://www.tannerhelland.com/photodemon_files/PhotoDemon_6.0_beta.zip"><strong>PhotoDemon 6.0 beta &#8211; program only</strong> (6.2mb &#8211; 19 September 2013)</a></div>
<div class="download_code"><a href="http://www.tannerhelland.com/photodemon_files/PhotoDemon_6.0_beta_fullsource.zip"><strong>PhotoDemon 6.0 beta &#8211; program + source code</strong> (8.2mb &#8211; 19 September 2013)</a></div>
<p>Remember: if you&#8217;re an advanced user, you never have to wait for a beta release.  You can always download PhotoDemon&#8217;s latest development release from <a href="https://github.com/tannerhelland/PhotoDemon" class="external">its GitHub page (source code)</a>, or from <a href="http://www.tannerhelland.com/photodemon_files/nightly/PhotoDemon_nightly.zip">this nightly build permalink (program only)</a>.</p>
<div class="please_donate">
<div class="donate_button">
<form action="https://www.paypal.com/cgi-bin/webscr" method="post">
<p><input type="hidden" name="cmd" value="_s-xclick"><input type="hidden" name="hosted_button_id" value="XPQS62BJ7V5TA"><input type="image" src="https://www.paypalobjects.com/en_US/i/btn/btn_donateCC_LG.gif" border="0" name="submit" alt="PayPal - The safer, easier way to pay online!"><img alt="" border="0" src="https://www.paypalobjects.com/en_US/i/scr/pixel.gif" width="1" height="1"></p>
</form>
</div>
<p>PhotoDemon is funded by donations from users like you.<br />Please consider a small donation to fund development and to help me support my family.<br />Even $1.00 helps.  Thank you!</p>
</div>
<h2 class="cv_title"><a name="overview"></a>Overview</h2>
<p>It&#8217;s taken nearly six months, but PhotoDemon 6.0 is finally ready for release.  I&#8217;ve <a href="http://www.tannerhelland.com/4996/photodemon-60-preview/">already talked about some of the great features this release includes</a>, like powerful selection tools, metadata (EXIF) support, Curves and other new tools, so I&#8217;d recommend glancing through the linked article if you&#8217;re curious.</p>
<p>Since that article, a number of other features have been added or improved: </p>
<ul>
<li>All tools now support save/load presets, reset to default, randomize, and automatic save/load of last-used settings.  These items are all accessible from a new &#8220;command bar&#8221; at the bottom of each tool dialog.</li>
<figure id="attachment_5158" aria-describedby="caption-attachment-5158" style="width: 600px" class="wp-caption aligncenter"><a href="http://www.tannerhelland.com/5106/photodemon-60-beta/pd_curves_commandbar/" rel="attachment wp-att-5158"><img data-attachment-id="5158" data-permalink="http://www.tannerhelland.com/5106/photodemon-60-beta/pd_curves_commandbar/" data-orig-file="http://www.tannerhelland.com/wp-content/uploads/PD_curves_commandbar.jpg" data-orig-size="889,581" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="PD_curves_commandbar" data-image-description="" data-medium-file="http://www.tannerhelland.com/wp-content/uploads/PD_curves_commandbar-300x196.jpg" data-large-file="http://www.tannerhelland.com/wp-content/uploads/PD_curves_commandbar-600x392.jpg" src="http://www.tannerhelland.com/wp-content/uploads/PD_curves_commandbar-600x392.jpg" alt="From left-to-right, the command bar includes buttons for: reset, randomize, saved presets, and save current settings as preset.  Last-used settings are automatically saved and loaded by the dialog." width="600" height="392" class="size-large wp-image-5158" srcset="http://www.tannerhelland.com/wp-content/uploads/PD_curves_commandbar-600x392.jpg 600w, http://www.tannerhelland.com/wp-content/uploads/PD_curves_commandbar-300x196.jpg 300w, http://www.tannerhelland.com/wp-content/uploads/PD_curves_commandbar-180x117.jpg 180w, http://www.tannerhelland.com/wp-content/uploads/PD_curves_commandbar-50x32.jpg 50w, http://www.tannerhelland.com/wp-content/uploads/PD_curves_commandbar-75x49.jpg 75w, http://www.tannerhelland.com/wp-content/uploads/PD_curves_commandbar-200x130.jpg 200w, http://www.tannerhelland.com/wp-content/uploads/PD_curves_commandbar.jpg 889w" sizes="(max-width: 600px) 100vw, 600px" /></a><figcaption id="caption-attachment-5158" class="wp-caption-text">From left-to-right, the command bar includes buttons for: reset, randomize, saved presets, and save current settings as preset.  Last-used settings are automatically saved and loaded by the dialog.</figcaption></figure>
<li>Three new blur tools: motion, radial, and zoom blur.  These tools <a href="http://www.tannerhelland.com/5109/performance-photodemon-gimp-paintnet/">outperform similar tools in GIMP and Paint.NET</a>.</li>
<figure id="attachment_5159" aria-describedby="caption-attachment-5159" style="width: 600px" class="wp-caption aligncenter"><a href="http://www.tannerhelland.com/5106/photodemon-60-beta/pd_radial_blur/" rel="attachment wp-att-5159"><img data-attachment-id="5159" data-permalink="http://www.tannerhelland.com/5106/photodemon-60-beta/pd_radial_blur/" data-orig-file="http://www.tannerhelland.com/wp-content/uploads/PD_radial_blur.jpg" data-orig-size="818,470" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="PD_radial_blur" data-image-description="" data-medium-file="http://www.tannerhelland.com/wp-content/uploads/PD_radial_blur-300x172.jpg" data-large-file="http://www.tannerhelland.com/wp-content/uploads/PD_radial_blur-600x344.jpg" src="http://www.tannerhelland.com/wp-content/uploads/PD_radial_blur-600x344.jpg" alt="PhotoDemon&#039;s new radial blur tool is 4x faster than Paint.NET&#039;s, and 30x faster then GIMP&#039;s - and at high angles, it produces significantly better output." width="600" height="344" class="size-large wp-image-5159" srcset="http://www.tannerhelland.com/wp-content/uploads/PD_radial_blur-600x344.jpg 600w, http://www.tannerhelland.com/wp-content/uploads/PD_radial_blur-300x172.jpg 300w, http://www.tannerhelland.com/wp-content/uploads/PD_radial_blur-180x103.jpg 180w, http://www.tannerhelland.com/wp-content/uploads/PD_radial_blur-50x28.jpg 50w, http://www.tannerhelland.com/wp-content/uploads/PD_radial_blur-75x43.jpg 75w, http://www.tannerhelland.com/wp-content/uploads/PD_radial_blur-200x114.jpg 200w, http://www.tannerhelland.com/wp-content/uploads/PD_radial_blur.jpg 818w" sizes="(max-width: 600px) 100vw, 600px" /></a><figcaption id="caption-attachment-5159" class="wp-caption-text">PhotoDemon&#8217;s new radial blur tool is 4x faster than Paint.NET&#8217;s, and 30x faster then GIMP&#8217;s &#8211; and at high angles, it produces significantly better output.</figcaption></figure>
<li>Much faster Gaussian and Box blur tools (20x improvement!)</li>
<figure id="attachment_5160" aria-describedby="caption-attachment-5160" style="width: 600px" class="wp-caption aligncenter"><a href="http://www.tannerhelland.com/5106/photodemon-60-beta/pd_gaussian_blur/" rel="attachment wp-att-5160"><img data-attachment-id="5160" data-permalink="http://www.tannerhelland.com/5106/photodemon-60-beta/pd_gaussian_blur/" data-orig-file="http://www.tannerhelland.com/wp-content/uploads/PD_gaussian_blur.jpg" data-orig-size="818,470" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="PD_gaussian_blur" data-image-description="" data-medium-file="http://www.tannerhelland.com/wp-content/uploads/PD_gaussian_blur-300x172.jpg" data-large-file="http://www.tannerhelland.com/wp-content/uploads/PD_gaussian_blur-600x344.jpg" src="http://www.tannerhelland.com/wp-content/uploads/PD_gaussian_blur-600x344.jpg" alt="The updated Gaussian Blur tool now provides quality settings for improved performance.  For most photos, the difference between &quot;good&quot; and &quot;best&quot; will be indistinguishable, but &quot;good&quot; will be some 20x faster." width="600" height="344" class="size-large wp-image-5160" srcset="http://www.tannerhelland.com/wp-content/uploads/PD_gaussian_blur-600x344.jpg 600w, http://www.tannerhelland.com/wp-content/uploads/PD_gaussian_blur-300x172.jpg 300w, http://www.tannerhelland.com/wp-content/uploads/PD_gaussian_blur-180x103.jpg 180w, http://www.tannerhelland.com/wp-content/uploads/PD_gaussian_blur-50x28.jpg 50w, http://www.tannerhelland.com/wp-content/uploads/PD_gaussian_blur-75x43.jpg 75w, http://www.tannerhelland.com/wp-content/uploads/PD_gaussian_blur-200x114.jpg 200w, http://www.tannerhelland.com/wp-content/uploads/PD_gaussian_blur.jpg 818w" sizes="(max-width: 600px) 100vw, 600px" /></a><figcaption id="caption-attachment-5160" class="wp-caption-text">The updated Gaussian Blur tool now provides quality settings for improved performance.  For most photos, the difference between &#8220;good&#8221; and &#8220;best&#8221; will be indistinguishable, but &#8220;good&#8221; will be some 20x faster.</figcaption></figure>
<li>A new <a href="http://en.wikipedia.org/wiki/Chroma_key">chroma key</a> (&#8220;green screen&#8221;) tool with performance comparable to professional tools, including full support for edge blending.  Find it in the Image -> Transparency -> Make color transparent menu.</li>
<figure id="attachment_5162" aria-describedby="caption-attachment-5162" style="width: 600px" class="wp-caption aligncenter"><a href="http://www.tannerhelland.com/5106/photodemon-60-beta/pd_chroma_key_before/" rel="attachment wp-att-5162"><img data-attachment-id="5162" data-permalink="http://www.tannerhelland.com/5106/photodemon-60-beta/pd_chroma_key_before/" data-orig-file="http://www.tannerhelland.com/wp-content/uploads/PD_chroma_key_before.jpg" data-orig-size="804,470" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="PD_chroma_key_before" data-image-description="" data-medium-file="http://www.tannerhelland.com/wp-content/uploads/PD_chroma_key_before-300x175.jpg" data-large-file="http://www.tannerhelland.com/wp-content/uploads/PD_chroma_key_before-600x350.jpg" src="http://www.tannerhelland.com/wp-content/uploads/PD_chroma_key_before-600x350.jpg" alt="Before color removal; image courtesy http://dimula73.blogspot.com/2013/03/new-user-interface-for-krita-color-to.html" width="600" height="350" class="size-large wp-image-5162" srcset="http://www.tannerhelland.com/wp-content/uploads/PD_chroma_key_before-600x350.jpg 600w, http://www.tannerhelland.com/wp-content/uploads/PD_chroma_key_before-300x175.jpg 300w, http://www.tannerhelland.com/wp-content/uploads/PD_chroma_key_before-180x105.jpg 180w, http://www.tannerhelland.com/wp-content/uploads/PD_chroma_key_before-50x29.jpg 50w, http://www.tannerhelland.com/wp-content/uploads/PD_chroma_key_before-75x43.jpg 75w, http://www.tannerhelland.com/wp-content/uploads/PD_chroma_key_before-200x116.jpg 200w, http://www.tannerhelland.com/wp-content/uploads/PD_chroma_key_before.jpg 804w" sizes="(max-width: 600px) 100vw, 600px" /></a><figcaption id="caption-attachment-5162" class="wp-caption-text">Before color removal; image courtesy <a href="http://dimula73.blogspot.com/2013/03/new-user-interface-for-krita-color-to.html">http://dimula73.blogspot.com/2013/03/new-user-interface-for-krita-color-to.html</a></figcaption></figure>
<figure id="attachment_5163" aria-describedby="caption-attachment-5163" style="width: 600px" class="wp-caption aligncenter"><a href="http://www.tannerhelland.com/5106/photodemon-60-beta/pd_chroma_key_after/" rel="attachment wp-att-5163"><img data-attachment-id="5163" data-permalink="http://www.tannerhelland.com/5106/photodemon-60-beta/pd_chroma_key_after/" data-orig-file="http://www.tannerhelland.com/wp-content/uploads/PD_chroma_key_after.jpg" data-orig-size="804,470" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="PD_chroma_key_after" data-image-description="" data-medium-file="http://www.tannerhelland.com/wp-content/uploads/PD_chroma_key_after-300x175.jpg" data-large-file="http://www.tannerhelland.com/wp-content/uploads/PD_chroma_key_after-600x350.jpg" src="http://www.tannerhelland.com/wp-content/uploads/PD_chroma_key_after-600x350.jpg" alt="After color removal.  Note that the tool creates a 32bpp image, which you can then composite using any photo editing software." width="600" height="350" class="size-large wp-image-5163" srcset="http://www.tannerhelland.com/wp-content/uploads/PD_chroma_key_after-600x350.jpg 600w, http://www.tannerhelland.com/wp-content/uploads/PD_chroma_key_after-300x175.jpg 300w, http://www.tannerhelland.com/wp-content/uploads/PD_chroma_key_after-180x105.jpg 180w, http://www.tannerhelland.com/wp-content/uploads/PD_chroma_key_after-50x29.jpg 50w, http://www.tannerhelland.com/wp-content/uploads/PD_chroma_key_after-75x43.jpg 75w, http://www.tannerhelland.com/wp-content/uploads/PD_chroma_key_after-200x116.jpg 200w, http://www.tannerhelland.com/wp-content/uploads/PD_chroma_key_after.jpg 804w" sizes="(max-width: 600px) 100vw, 600px" /></a><figcaption id="caption-attachment-5163" class="wp-caption-text">After color removal.  Note that the tool creates a 32bpp image, which you can then composite using any photo editing software.</figcaption></figure>
<li>A new Language Editor makes contributing new translations fast and easy.</li>
<figure id="attachment_5161" aria-describedby="caption-attachment-5161" style="width: 600px" class="wp-caption aligncenter"><a href="http://www.tannerhelland.com/5106/photodemon-60-beta/pd_language_editor/" rel="attachment wp-att-5161"><img data-attachment-id="5161" data-permalink="http://www.tannerhelland.com/5106/photodemon-60-beta/pd_language_editor/" data-orig-file="http://www.tannerhelland.com/wp-content/uploads/PD_Language_Editor.jpg" data-orig-size="1040,634" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="PD_Language_Editor" data-image-description="" data-medium-file="http://www.tannerhelland.com/wp-content/uploads/PD_Language_Editor-300x182.jpg" data-large-file="http://www.tannerhelland.com/wp-content/uploads/PD_Language_Editor-600x365.jpg" src="http://www.tannerhelland.com/wp-content/uploads/PD_Language_Editor-600x365.jpg" alt="The new Language Editor makes it easier than ever to get involved in translation.  Please contact me if you can help!  (You will receive full credit for your work.)" width="600" height="365" class="size-large wp-image-5161" srcset="http://www.tannerhelland.com/wp-content/uploads/PD_Language_Editor-600x365.jpg 600w, http://www.tannerhelland.com/wp-content/uploads/PD_Language_Editor-300x182.jpg 300w, http://www.tannerhelland.com/wp-content/uploads/PD_Language_Editor-180x109.jpg 180w, http://www.tannerhelland.com/wp-content/uploads/PD_Language_Editor-50x30.jpg 50w, http://www.tannerhelland.com/wp-content/uploads/PD_Language_Editor-75x45.jpg 75w, http://www.tannerhelland.com/wp-content/uploads/PD_Language_Editor-900x548.jpg 900w, http://www.tannerhelland.com/wp-content/uploads/PD_Language_Editor-200x121.jpg 200w, http://www.tannerhelland.com/wp-content/uploads/PD_Language_Editor.jpg 1040w" sizes="(max-width: 600px) 100vw, 600px" /></a><figcaption id="caption-attachment-5161" class="wp-caption-text">The new Language Editor makes it easier than ever to get involved in translation.  Please <a href="http://www.tannerhelland.com/contact/">contact me</a> if you can help!  (You will receive full credit for your work.)</figcaption></figure>
<li>New variable-strength Sharpen tool</li>
<figure id="attachment_5169" aria-describedby="caption-attachment-5169" style="width: 600px" class="wp-caption aligncenter"><a href="http://www.tannerhelland.com/5106/photodemon-60-beta/pd_sharpen_tool/" rel="attachment wp-att-5169"><img data-attachment-id="5169" data-permalink="http://www.tannerhelland.com/5106/photodemon-60-beta/pd_sharpen_tool/" data-orig-file="http://www.tannerhelland.com/wp-content/uploads/PD_sharpen_tool.jpg" data-orig-size="818,470" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="PD_sharpen_tool" data-image-description="" data-medium-file="http://www.tannerhelland.com/wp-content/uploads/PD_sharpen_tool-300x172.jpg" data-large-file="http://www.tannerhelland.com/wp-content/uploads/PD_sharpen_tool-600x344.jpg" src="http://www.tannerhelland.com/wp-content/uploads/PD_sharpen_tool-600x344.jpg" alt="Previously, PhotoDemon only provided set &quot;Sharpen&quot; and &quot;Sharpen More&quot; functions.  The new tool allows for floating-point adjustments, which allow for much more nuanced fixes.  (Unsharp Masking is still available too, obviously!)" width="600" height="344" class="size-large wp-image-5169" srcset="http://www.tannerhelland.com/wp-content/uploads/PD_sharpen_tool-600x344.jpg 600w, http://www.tannerhelland.com/wp-content/uploads/PD_sharpen_tool-300x172.jpg 300w, http://www.tannerhelland.com/wp-content/uploads/PD_sharpen_tool-180x103.jpg 180w, http://www.tannerhelland.com/wp-content/uploads/PD_sharpen_tool-50x28.jpg 50w, http://www.tannerhelland.com/wp-content/uploads/PD_sharpen_tool-75x43.jpg 75w, http://www.tannerhelland.com/wp-content/uploads/PD_sharpen_tool-200x114.jpg 200w, http://www.tannerhelland.com/wp-content/uploads/PD_sharpen_tool.jpg 818w" sizes="(max-width: 600px) 100vw, 600px" /></a><figcaption id="caption-attachment-5169" class="wp-caption-text">Previously, PhotoDemon only provided set &#8220;Sharpen&#8221; and &#8220;Sharpen More&#8221; functions.  The new tool allows for floating-point adjustments, which allow for much more nuanced fixes.  (Unsharp Masking is still available too, obviously!)</figcaption></figure>
<li>New Oil Painting tool</li>
<figure id="attachment_5168" aria-describedby="caption-attachment-5168" style="width: 600px" class="wp-caption aligncenter"><a href="http://www.tannerhelland.com/5106/photodemon-60-beta/pd_oil_painting/" rel="attachment wp-att-5168"><img data-attachment-id="5168" data-permalink="http://www.tannerhelland.com/5106/photodemon-60-beta/pd_oil_painting/" data-orig-file="http://www.tannerhelland.com/wp-content/uploads/PD_Oil_Painting.jpg" data-orig-size="3728,2410" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;22&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;NIKON D200&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;1148126961&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;24&quot;,&quot;iso&quot;:&quot;100&quot;,&quot;shutter_speed&quot;:&quot;0.0333333333333&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="PD_Oil_Painting" data-image-description="" data-medium-file="http://www.tannerhelland.com/wp-content/uploads/PD_Oil_Painting-300x193.jpg" data-large-file="http://www.tannerhelland.com/wp-content/uploads/PD_Oil_Painting-600x387.jpg" src="http://www.tannerhelland.com/wp-content/uploads/PD_Oil_Painting-600x387.jpg" alt="Same photo as the screenshot at the top of this page, but oil-ified." width="600" height="387" class="size-large wp-image-5168" srcset="http://www.tannerhelland.com/wp-content/uploads/PD_Oil_Painting-600x387.jpg 600w, http://www.tannerhelland.com/wp-content/uploads/PD_Oil_Painting-300x193.jpg 300w, http://www.tannerhelland.com/wp-content/uploads/PD_Oil_Painting-180x116.jpg 180w, http://www.tannerhelland.com/wp-content/uploads/PD_Oil_Painting-50x32.jpg 50w, http://www.tannerhelland.com/wp-content/uploads/PD_Oil_Painting-75x48.jpg 75w, http://www.tannerhelland.com/wp-content/uploads/PD_Oil_Painting-900x581.jpg 900w, http://www.tannerhelland.com/wp-content/uploads/PD_Oil_Painting-200x129.jpg 200w" sizes="(max-width: 600px) 100vw, 600px" /></a><figcaption id="caption-attachment-5168" class="wp-caption-text">Same photo as the screenshot at the top of this page, but oil-ified.</figcaption></figure>
<li>Minor improvements to many tools, including polar coordinate conversion, perspective correction, wave distort, ripple distort, figured glass, tile image, posterize, rotate, custom filters, histogram.</li>
<figure id="attachment_5164" aria-describedby="caption-attachment-5164" style="width: 600px" class="wp-caption aligncenter"><a href="http://www.tannerhelland.com/5106/photodemon-60-beta/pd_perspective_distort/" rel="attachment wp-att-5164"><img data-attachment-id="5164" data-permalink="http://www.tannerhelland.com/5106/photodemon-60-beta/pd_perspective_distort/" data-orig-file="http://www.tannerhelland.com/wp-content/uploads/PD_perspective_distort.jpg" data-orig-size="1025,675" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="PD_perspective_distort" data-image-description="" data-medium-file="http://www.tannerhelland.com/wp-content/uploads/PD_perspective_distort-300x197.jpg" data-large-file="http://www.tannerhelland.com/wp-content/uploads/PD_perspective_distort-600x395.jpg" src="http://www.tannerhelland.com/wp-content/uploads/PD_perspective_distort-600x395.jpg" alt="The perspective tool now supports both forward and reverse transforms.  Reverse transforms allow you to simply trace a crooked object, and have it automatically straightened by the program." width="600" height="395" class="size-large wp-image-5164" srcset="http://www.tannerhelland.com/wp-content/uploads/PD_perspective_distort-600x395.jpg 600w, http://www.tannerhelland.com/wp-content/uploads/PD_perspective_distort-300x197.jpg 300w, http://www.tannerhelland.com/wp-content/uploads/PD_perspective_distort-180x118.jpg 180w, http://www.tannerhelland.com/wp-content/uploads/PD_perspective_distort-50x32.jpg 50w, http://www.tannerhelland.com/wp-content/uploads/PD_perspective_distort-75x49.jpg 75w, http://www.tannerhelland.com/wp-content/uploads/PD_perspective_distort-900x592.jpg 900w, http://www.tannerhelland.com/wp-content/uploads/PD_perspective_distort-200x131.jpg 200w, http://www.tannerhelland.com/wp-content/uploads/PD_perspective_distort.jpg 1025w" sizes="(max-width: 600px) 100vw, 600px" /></a><figcaption id="caption-attachment-5164" class="wp-caption-text">The perspective tool now supports both forward and reverse transforms.  Reverse transforms allow you to simply trace a crooked object, and have it automatically straightened by the program.</figcaption></figure>
<figure id="attachment_5165" aria-describedby="caption-attachment-5165" style="width: 600px" class="wp-caption aligncenter"><a href="http://www.tannerhelland.com/5106/photodemon-60-beta/pd_new_histogram/" rel="attachment wp-att-5165"><img data-attachment-id="5165" data-permalink="http://www.tannerhelland.com/5106/photodemon-60-beta/pd_new_histogram/" data-orig-file="http://www.tannerhelland.com/wp-content/uploads/PD_new_histogram.jpg" data-orig-size="722,642" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="PD_new_histogram" data-image-description="" data-medium-file="http://www.tannerhelland.com/wp-content/uploads/PD_new_histogram-300x266.jpg" data-large-file="http://www.tannerhelland.com/wp-content/uploads/PD_new_histogram-600x533.jpg" src="http://www.tannerhelland.com/wp-content/uploads/PD_new_histogram-600x533.jpg" alt="The histogram offers new render options, which can be helpful for identifying areas of channel overlap." width="600" height="533" class="size-large wp-image-5165" srcset="http://www.tannerhelland.com/wp-content/uploads/PD_new_histogram-600x533.jpg 600w, http://www.tannerhelland.com/wp-content/uploads/PD_new_histogram-300x266.jpg 300w, http://www.tannerhelland.com/wp-content/uploads/PD_new_histogram-180x160.jpg 180w, http://www.tannerhelland.com/wp-content/uploads/PD_new_histogram-50x44.jpg 50w, http://www.tannerhelland.com/wp-content/uploads/PD_new_histogram-75x66.jpg 75w, http://www.tannerhelland.com/wp-content/uploads/PD_new_histogram-200x177.jpg 200w, http://www.tannerhelland.com/wp-content/uploads/PD_new_histogram.jpg 722w" sizes="(max-width: 600px) 100vw, 600px" /></a><figcaption id="caption-attachment-5165" class="wp-caption-text">The histogram offers new render options, which can be helpful for identifying areas of channel overlap.</figcaption></figure>
<li>Any tool with a &#8220;color&#8221; option now allows you to pick a color directly from the image by clicking the preview.</li>
<li>Much better support for high-DPI screens, including tablets.</li>
<li>Faster viewport rendering for 32bpp images.</li>
</ul>
<p>Again, these new features are only a fraction of what 6.0 includes.  <a href="http://www.tannerhelland.com/4996/photodemon-60-preview/">Please check out the 6.0 preview article</a> for news on all the other new tools and improvements.</p>
<h2 class="cv_title"><a name="acknowledgments"></a>Acknowledgments</h2>
<p>This 6.0 release represents six months of hard work from a variety of contributors.  While I am very grateful to all of PhotoDemon&#8217;s talented contributors, a few deserve special mention.  Thank you to:</p>
<ul>
<li><a href="https://github.com/audioglider">Audioglider</a> for contributing three new tools: Channel Mixer, Vibrance, and Exposure.  Audioglider also reported a number of issues, and motivated me to implement preset support for every PD tool.</li>
<li><a href="http://www.planetsourcecode.com/vb/scripts/BrowseCategoryOrSearchResults.asp?lngWId=1&#038;blnAuthorSearch=TRUE&#038;lngAuthorId=2213335741&#038;strAuthorName=Frank%20Donckers&#038;txtMaxNumberOfEntriesPerPage=25">Frank Donckers</a> for again providing the German, French, and Dutch translations, and for contributing many pieces of code to the new Language Editor, including the Google Translate interface.  Amazing stuff.</li>
<li><a href="http://www.planetsourcecode.com/vb/scripts/BrowseCategoryOrSearchResults.asp?lngWId=1&#038;blnAuthorSearch=TRUE&#038;lngAuthorId=77440558266&#038;strAuthorName=GioRock&#038;txtMaxNumberOfEntriesPerPage=25">GioRock</a> for the Italian translation, and for detailed testing of many small translation items.  It takes a ton of work to get all of PD&#8217;s text translating properly, and GioRock debugged many items for me, which benefits users of every language.</li>
<li><a href="http://camendesign.com/">Kroc Camen</a> for a new IDE-safe mouse interface class, derived from his own <a href="https://github.com/Kroc/MaSS1VE">open-source VB project</a>.  Kroc also reviews many of PD&#8217;s individual commits, where he catches many small items I overlook.</li>
<li><a href="http://www.planetsourcecode.com/vb/scripts/ShowCode.asp?txtCodeId=66991&#038;lngWId=1">Robert Rayment</a> for helping me profile and optimize a number of PD&#8217;s more taxing functions, and for many suggestions on tweaks and improvements.  Many of the performance improvements available in this new version are a result of Robert&#8217;s help.  Please check out his own <a href="http://www.planetsourcecode.com/vb/scripts/ShowCode.asp?txtCodeId=66991&#038;lngWId=1">VB image editor</a> if you can.</li>
</ul>
<h2 class="cv_title"><a name="bugs"></a>Known bugs</h2>
<ul>
<li><del datetime="2013-09-21T13:39:09+00:00">EXIF data is not maintained with certain combinations of preferences (delay loading EXIF + export full data when saving).  This is caused by a metadata caching issue, and will be fixed by release.</del>  Fixed!</li>
<li><del datetime="2013-09-21T13:39:09+00:00">ExifTool plugin is slightly out of date.  It will be updated to its latest version upon 6.0&#8217;s release.</del>  Fixed!</li>
<li><del datetime="2013-09-24T19:39:43+00:00">Metadata menus sometimes become disabled even when metadata is available.  This will be fixed by release.</del>  Fixed!</li>
<li><del datetime="2013-09-24T19:39:43+00:00">OK and Cancel buttons are not currently translated.  This will be fixed by release.</del>  Fixed!</li>
<li><del datetime="2013-09-25T21:56:20+00:00">Some hotkeys don&#8217;t fire unless the main form is first clicked.  This is a known problem with VB, and will <em>hopefully</em> be fixed by release.</del>  Fixed!</li>
<li>Master language file is missing a few minor text entries.  This will be fixed by release.</li>
</ul>
<p>The beta version was released before these small items were fixed, so it still contains these bugs.  Developers can download updated source code, with these fixes, <a href="https://github.com/tannerhelland/PhotoDemon">from GitHub</a>.</p>
<h2 class="cv_title"><a name="officialrelease"></a>Official release timeline</h2>
<p>Barring any major bugs, the official 6.0 release should happen within several weeks.  Feature-wise, it will be identical to this beta release.  The only changes will be minor bug fixes and performance improvements.  Automatic update notifications for existing PhotoDemon installs will also go live at that point.</p>
]]></content:encoded>
							<wfw:commentRss>http://www.tannerhelland.com/5106/photodemon-60-beta/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
						<post-id xmlns="com-wordpress:feed-additions:1">5106</post-id>	</item>
		<item>
		<title>Blur Filter performance: PhotoDemon vs GIMP vs Paint.NET</title>
		<link>http://www.tannerhelland.com/5109/performance-photodemon-gimp-paintnet/</link>
				<comments>http://www.tannerhelland.com/5109/performance-photodemon-gimp-paintnet/#comments</comments>
				<pubDate>Wed, 18 Sep 2013 06:44:03 +0000</pubDate>
		<dc:creator><![CDATA[Tanner]]></dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Graphics Code]]></category>
		<category><![CDATA[PhotoDemon]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[benchmarking]]></category>
		<category><![CDATA[GIMP]]></category>
		<category><![CDATA[Paint.Net]]></category>

		<guid isPermaLink="false">http://www.tannerhelland.com/?p=5109</guid>
				<description><![CDATA[The latest nightly build of PhotoDemon (<a href="http://www.tannerhelland.com/photodemon/#download">download it here</a>) includes a bunch of new and improved blur filters.  I thought it would be fun to speed-test four of PhotoDemon's improved blur tools against two other free photo editors: <a href="http://www.gimp.org/">GIMP</a> and <a href="http://www.getpaint.net/">Paint.NET</a>.  The results were surprising enough that I thought them worth sharing...]]></description>
								<content:encoded><![CDATA[<p>(Note before I begin: the PhotoDemon 6.0 beta should be live by the end of this week.  Sorry it took so long to prepare!)</p>
<figure id="attachment_5117" aria-describedby="caption-attachment-5117" style="width: 695px" class="wp-caption aligncenter"><a href="http://www.tannerhelland.com/5109/performance-photodemon-gimp-paintnet/zoom/" rel="attachment wp-att-5117"><img src="http://www.tannerhelland.com/wp-content/uploads/Zoom.png" alt="See what kind of fun charts we get to discuss?  And here I thought the days of 17-minute photo editing actions died with the Pentium III..." width="695" height="373" class="size-full wp-image-5117" srcset="http://www.tannerhelland.com/wp-content/uploads/Zoom.png 695w, http://www.tannerhelland.com/wp-content/uploads/Zoom-300x161.png 300w, http://www.tannerhelland.com/wp-content/uploads/Zoom-600x322.png 600w, http://www.tannerhelland.com/wp-content/uploads/Zoom-180x96.png 180w, http://www.tannerhelland.com/wp-content/uploads/Zoom-50x26.png 50w, http://www.tannerhelland.com/wp-content/uploads/Zoom-75x40.png 75w, http://www.tannerhelland.com/wp-content/uploads/Zoom-200x107.png 200w" sizes="(max-width: 695px) 100vw, 695px" /></a><figcaption id="caption-attachment-5117" class="wp-caption-text">See what kind of fun charts we get to discuss?  And here I thought the days of 17-minute photo editing actions died with the Pentium III&#8230;</figcaption></figure>
<p>The latest nightly build of PhotoDemon (<a href="http://www.tannerhelland.com/photodemon/#download">download it here</a>) includes a bunch of new and improved blur filters.  Blur filters are among the most computationally demanding filters in a photo editor, because for each pixel in an image, a bunch of other pixels must also be examined in order to calculate the blur.  (Blurs generally work by averaging together groups of pixels.  Motion blur averages pixels in a line, radial blur averages pixels in an arc, and normal blur averages pixels in a box or circle shape.)</p>
<p>As a simple example, consider a basic blur with a 200 pixel radius, applied to a 10 megapixel digital photo.  For each pixel in the photo (all ten million of them), an area of 200 pixels in each direction must be averaged together.  Using a simple box blur, that means a box of 200 pixels left, right, up and down must be tallied (for a net area of 400 * 400, or 160,000 pixel comparisons) in order to calculate the blur.  Thus, such an algorithm would require:</p>
<p>10,000,000 pixels * 160,000 calculations per pixel = 1.6 trillion total calculations</p>
<p>Even on a modern processor, that&#8217;s an enormous undertaking.  Fortunately, mathematicians and coders have developed many clever ways to optimize blur functions.  Many of these optimizations appear in the newest PhotoDemon build, so I thought it would be fun to speed-test four of PhotoDemon&#8217;s blur tools against two other free photo editors: <a href="http://www.gimp.org/">GIMP</a> and <a href="http://www.getpaint.net/">Paint.NET</a>.  The results were surprising enough that I thought them worth sharing.</p>
<p>A brief overview of each photo editor:</p>
<ul>
<li>PhotoDemon: open-source, written in VB6, nightly build 893 (6.0 beta)</li>
<li>GIMP: open-source, written primarily in C, v2.8.6</li>
<li>Paint.NET: closed-source, written primarily in C# (and the .Net framework, per the name), v3.5.11</li>
</ul>
<p>As benchmarking goes, this was very informal.  PhotoDemon reports timing automatically in nightly builds, but for GIMP and Paint.NET I had to resort to using a stopwatch.  Normally this is a terrible idea, but the algorithms involved take a very long time to run, so a stopwatch was sufficient for broad timing.  (10ths of a second don&#8217;t matter much when an algorithm takes twenty minutes to finish&#8230;)</p>
<p>All tests were done on Windows 7 (64-bit), on my Core i5 650 (3.2ghz) desktop PC with 8gb of RAM.  My PC was middle-of-the-road when I bought it back in 2010, so I&#8217;d consider reasonably representative of an &#8220;average&#8221; PC.  All the tools in question appear to be heavily CPU-bound anyway, so it&#8217;s doubtful newer processors or more cores would make a meaningful difference.</p>
<p>The test photo I used was a 10 megapixel photo, 3872&#215;2592 specifically, in JPEG format:</p>
<p><a href="http://www.tannerhelland.com/5109/performance-photodemon-gimp-paintnet/helland_0085/" rel="attachment wp-att-5110"><img data-attachment-id="5110" data-permalink="http://www.tannerhelland.com/5109/performance-photodemon-gimp-paintnet/helland_0085/" data-orig-file="http://www.tannerhelland.com/wp-content/uploads/Helland_0085.jpg" data-orig-size="3872,2592" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;7.1&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;NIKON D200&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;1148122570&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;24&quot;,&quot;iso&quot;:&quot;100&quot;,&quot;shutter_speed&quot;:&quot;0.005&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="10mp_test_photo" data-image-description="" data-medium-file="http://www.tannerhelland.com/wp-content/uploads/Helland_0085-300x200.jpg" data-large-file="http://www.tannerhelland.com/wp-content/uploads/Helland_0085-600x401.jpg" src="http://www.tannerhelland.com/wp-content/uploads/Helland_0085-600x401.jpg" alt="10 megapixel test photo" width="600" height="401" class="aligncenter size-large wp-image-5110" srcset="http://www.tannerhelland.com/wp-content/uploads/Helland_0085-600x401.jpg 600w, http://www.tannerhelland.com/wp-content/uploads/Helland_0085-300x200.jpg 300w, http://www.tannerhelland.com/wp-content/uploads/Helland_0085-180x120.jpg 180w, http://www.tannerhelland.com/wp-content/uploads/Helland_0085-50x33.jpg 50w, http://www.tannerhelland.com/wp-content/uploads/Helland_0085-75x50.jpg 75w, http://www.tannerhelland.com/wp-content/uploads/Helland_0085-900x602.jpg 900w, http://www.tannerhelland.com/wp-content/uploads/Helland_0085-200x133.jpg 200w" sizes="(max-width: 600px) 100vw, 600px" /></a></p>
<p>With the exception of some very long timings (10+ minutes), all timings were checked twice to make sure results were representative.  Very long ones were only checked once due to the wait involved, though I did initiate a second attempt just to make sure my PC wasn&#8217;t acting up.  (It wasn&#8217;t.)</p>
<p>Here are the timing results for four separate blur types, with some notes on my implementation, and what I know or can potentially infer about GIMP and/or Paint.NET&#8217;s implementations.</p>
<p>(Due to the large size of the images involved, I saw no reason to upload the output images of each test.  Anyone interested can easily reproduce this test on their own PC with images of their choosing.)</p>
<h2 class="cv_title">Gaussian Blur</h2>
<figure id="attachment_5111" aria-describedby="caption-attachment-5111" style="width: 695px" class="wp-caption aligncenter"><a href="http://www.tannerhelland.com/5109/performance-photodemon-gimp-paintnet/gaussian/" rel="attachment wp-att-5111"><img data-attachment-id="5111" data-permalink="http://www.tannerhelland.com/5109/performance-photodemon-gimp-paintnet/gaussian/" data-orig-file="http://www.tannerhelland.com/wp-content/uploads/Gaussian.png" data-orig-size="695,373" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="Gaussian" data-image-description="" data-medium-file="http://www.tannerhelland.com/wp-content/uploads/Gaussian-300x161.png" data-large-file="http://www.tannerhelland.com/wp-content/uploads/Gaussian-600x322.png" src="http://www.tannerhelland.com/wp-content/uploads/Gaussian.png" alt="Two notes - PhotoDemon used the &quot;good&quot; quality setting, which is a Gaussian estimation using a modified 3x box blur, and GIMP used the IIR method." width="695" height="373" class="size-full wp-image-5111" srcset="http://www.tannerhelland.com/wp-content/uploads/Gaussian.png 695w, http://www.tannerhelland.com/wp-content/uploads/Gaussian-300x161.png 300w, http://www.tannerhelland.com/wp-content/uploads/Gaussian-600x322.png 600w, http://www.tannerhelland.com/wp-content/uploads/Gaussian-180x96.png 180w, http://www.tannerhelland.com/wp-content/uploads/Gaussian-50x26.png 50w, http://www.tannerhelland.com/wp-content/uploads/Gaussian-75x40.png 75w, http://www.tannerhelland.com/wp-content/uploads/Gaussian-200x107.png 200w" sizes="(max-width: 695px) 100vw, 695px" /></a><figcaption id="caption-attachment-5111" class="wp-caption-text">Two notes &#8211; PhotoDemon used the &#8220;good&#8221; quality setting, which is a Gaussian estimation using a modified 3x box blur, and GIMP used the IIR method.</figcaption></figure>
<p><a href="http://en.wikipedia.org/wiki/Gaussian_blur">Gaussian Blur</a> provides an excellent starting point.  Gaussian blur works by averaging a square chunk of pixels, and giving pixels close to the center more weight than pixels far away.  It is the most common type of blur tool in photo editing software, probably because its results are aesthetically pleasing, and it is an easy blur function to optimize.</p>
<p>Instead of a naive approach, which would involve the 1.6 trillion calculations mentioned above, most photo editors implement Gaussian Blur using a <a href="http://www.dspguide.com/ch24/3.htm">separable implementation</a>, which cuts the calculations to a much more pleasant 8 billion calculations.  Unfortunately, 8 billion calculations is still a lot.  (PhotoDemon&#8217;s &#8220;best quality&#8221; option on its Gaussian tool applies a pure Gaussian using separable kernels.  On large images, it&#8217;s slow.  Very slow.)</p>
<p>An even faster approach takes advantage of a neat mathematical relationship between box filters and Gaussian filters: if you keep applying a box filter to a set of data, the result will eventually approach a Gaussian distribution.  (<a href="http://nghiaho.com/?p=1159">Excellent charts available here, courtesy of Nghia Ho</a>.)  The <a href="http://en.wikipedia.org/wiki/Central_limit_theorem">Central Limit Theorem</a> shows that repeating a box blur three times results in a function that&#8217;s ~97% identical to a true Gaussian.</p>
<p>PhotoDemon uses this as the basis for its three quality settings for Gaussian blur (good, better, and best).  Good is a 3x box blur approximation, Better is a 5x, and Best is a true Gaussian.  For the chart above, I used the &#8220;good&#8221; setting because it is by far the fastest.  (Note that there&#8217;s a bit more to it than just repeating a box blur &#8211; how you calculate the box blur size matters; I use a variation of the W3 recommendation <a href="http://www.w3.org/TR/SVG11/filters.html#feGaussianBlurStdDeviationAttribute">available here</a>.)</p>
<p>Take-home message: GIMP&#8217;s IIR implementation is excellent &#8211; very fast, and it produces a true Gaussian, no estimations.  PhotoDemon is surprisingly competitive for a single-threaded VB6 app.  Paint.NET&#8217;s Gaussian is quite poor both in quality and final result.  Its resulting blur is muddier than a true Gaussian, and much slower than you&#8217;d expect for a box-blur approximation&#8230; so I honestly have no idea how they&#8217;ve implemented it.</p>
<h2 class="cv_title">Motion Blur</h2>
<figure id="attachment_5112" aria-describedby="caption-attachment-5112" style="width: 695px" class="wp-caption aligncenter"><a href="http://www.tannerhelland.com/5109/performance-photodemon-gimp-paintnet/motion/" rel="attachment wp-att-5112"><img data-attachment-id="5112" data-permalink="http://www.tannerhelland.com/5109/performance-photodemon-gimp-paintnet/motion/" data-orig-file="http://www.tannerhelland.com/wp-content/uploads/Motion.png" data-orig-size="695,373" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="Motion" data-image-description="" data-medium-file="http://www.tannerhelland.com/wp-content/uploads/Motion-300x161.png" data-large-file="http://www.tannerhelland.com/wp-content/uploads/Motion-600x322.png" src="http://www.tannerhelland.com/wp-content/uploads/Motion.png" alt="PhotoDemon used &quot;Quality&quot; mode instead of &quot;Speed&quot;, meaning bilinear interpolation was applied to the rotated image.  No extra options are available for this tool in GIMP or Paint.NET." width="695" height="373" class="size-full wp-image-5112" srcset="http://www.tannerhelland.com/wp-content/uploads/Motion.png 695w, http://www.tannerhelland.com/wp-content/uploads/Motion-300x161.png 300w, http://www.tannerhelland.com/wp-content/uploads/Motion-600x322.png 600w, http://www.tannerhelland.com/wp-content/uploads/Motion-180x96.png 180w, http://www.tannerhelland.com/wp-content/uploads/Motion-50x26.png 50w, http://www.tannerhelland.com/wp-content/uploads/Motion-75x40.png 75w, http://www.tannerhelland.com/wp-content/uploads/Motion-200x107.png 200w" sizes="(max-width: 695px) 100vw, 695px" /></a><figcaption id="caption-attachment-5112" class="wp-caption-text">PhotoDemon used &#8220;Quality&#8221; mode instead of &#8220;Speed&#8221;, meaning bilinear interpolation was applied to the rotated image.  Also, &#8220;blur symmetrically&#8221; was checked.  No extra options are available for this tool in GIMP or Paint.NET.</figcaption></figure>
<p>Motion blur is a bit more problematic than Gaussian blur, because it doesn&#8217;t work in a square pattern.  A naive approach would have you use something like <a href="http://en.wikipedia.org/wiki/Bresenham%27s_algorithm">Bresenham&#8217;s algorithm</a> on each pixel, tracing a line at the specified angle and averaging interpolated values as you go.</p>
<p>A much better approach is to simply rotate the image by the requested angle, apply a (very fast) horizontal blur, then rotate the image back into place.  If you use a fast rotation algorithm (like the famous <a href="http://www.ocf.berkeley.edu/~fricke/projects/israel/paeth/rotation_by_shearing.html">3-shear technique</a>), this can make motion blur very quick.</p>
<p>My PhotoDemon implementation does not use the fast 3-shear technique; it uses a naive, geometric rotation (reverse-mapped) with bilinear interpolation.  I expected this to make it quite a bit slower than comparable tools in GIMP and Paint.NET, but I was surprised to discover that both software packages are&#8230; well, pretty damn terrible.</p>
<p>Based on a brief perusal of <a href="https://git.gnome.org/browse/gimp/tree/plug-ins/common/blur-motion.c?id=GIMP_2_8_0">GIMP&#8217;s source code</a>, they appear to use the naive Bresenham approach, which explains why it&#8217;s so slow.</p>
<p>Once again, Paint.NET&#8217;s execution time makes no sense to me.  For a software package that claims: &#8220;<a href="http://www.getpaint.net/features.html">extensive work has gone into making Paint.NET the fastest image editor available</a>&#8220;, methinks they need a bit more &#8220;extensive work&#8221; on this particular tool&#8230;</p>
<h2 class="cv_title">Radial Blur</h2>
<figure id="attachment_5113" aria-describedby="caption-attachment-5113" style="width: 695px" class="wp-caption aligncenter"><a href="http://www.tannerhelland.com/5109/performance-photodemon-gimp-paintnet/radial/" rel="attachment wp-att-5113"><img data-attachment-id="5113" data-permalink="http://www.tannerhelland.com/5109/performance-photodemon-gimp-paintnet/radial/" data-orig-file="http://www.tannerhelland.com/wp-content/uploads/Radial.png" data-orig-size="695,373" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="Radial" data-image-description="" data-medium-file="http://www.tannerhelland.com/wp-content/uploads/Radial-300x161.png" data-large-file="http://www.tannerhelland.com/wp-content/uploads/Radial-600x322.png" src="http://www.tannerhelland.com/wp-content/uploads/Radial.png" alt="As before, PhotoDemon uses the &quot;quality&quot; setting for bilinear interpolation.  Paint.NET was applied at quality setting 2 out of 5, the default setting.  (This results in a noticeably lower-quality image than PhotoDemon or GIMP.)  GIMP does not provide any additional options for this tool." width="695" height="373" class="size-full wp-image-5113" srcset="http://www.tannerhelland.com/wp-content/uploads/Radial.png 695w, http://www.tannerhelland.com/wp-content/uploads/Radial-300x161.png 300w, http://www.tannerhelland.com/wp-content/uploads/Radial-600x322.png 600w, http://www.tannerhelland.com/wp-content/uploads/Radial-180x96.png 180w, http://www.tannerhelland.com/wp-content/uploads/Radial-50x26.png 50w, http://www.tannerhelland.com/wp-content/uploads/Radial-75x40.png 75w, http://www.tannerhelland.com/wp-content/uploads/Radial-200x107.png 200w" sizes="(max-width: 695px) 100vw, 695px" /></a><figcaption id="caption-attachment-5113" class="wp-caption-text">As before, PhotoDemon uses the &#8220;quality&#8221; setting for bilinear interpolation.  Paint.NET was applied at quality setting 2 out of 5, the default setting.  GIMP does not provide any additional options for this tool.</figcaption></figure>
<p>And so we move to Radial Blur, where we find a surprising role reversal: Paint.NET gives a much better showing here, while GIMP turns in the worst performance yet.  Again, a brief look at <a href="https://git.gnome.org/browse/gimp/tree/plug-ins/common/blur-motion.c?id=GIMP_2_8_0">GIMP&#8217;s source code for this function</a> shows a questionable nested-loop approach to the problem.  Tracing an arc-like path for each pixel is a bad idea, and while bilinear interpolation is used to improve the output quality &#8211; same as PhotoDemon &#8211; the time required makes this tool pretty much unusable.</p>
<p>PhotoDemon&#8217;s implementation is nothing particularly special, which makes its relative performance so surprising.  I use <a href="http://www.jhlabs.com/ip/blurring.html">a well-known trick</a> where I convert the image to polar coordinates, apply a horizontal blur, then convert the image back to Cartesian coordinates.  A small amount of image quality is lost by the two coordinate conversions, but because we are blurring the image anyway, this doesn&#8217;t matter much.  That said, for small angles (< 5 degrees), both GIMP and Paint.NET produce better-looking output.

At larger radii, however, PhotoDemon's is much better.  Both GIMP and Paint.NET produce <a href="http://en.wikipedia.org/wiki/Moire">Moire patterns</a>, presumably from sampling at discrete intervals, while PhotoDemon&#8217;s output is clean and smooth.  This can probably be fixed in Paint.NET by using a higher quality setting, but quality setting 2/5 was already slow enough!</p>
<figure id="attachment_5115" aria-describedby="caption-attachment-5115" style="width: 700px" class="wp-caption aligncenter"><a href="http://www.tannerhelland.com/5109/performance-photodemon-gimp-paintnet/photodemon-radial-blur/" rel="attachment wp-att-5115"><img data-attachment-id="5115" data-permalink="http://www.tannerhelland.com/5109/performance-photodemon-gimp-paintnet/photodemon-radial-blur/" data-orig-file="http://www.tannerhelland.com/wp-content/uploads/PhotoDemon-radial-blur.jpg" data-orig-size="700,469" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;7.1&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;NIKON D200&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;1148122570&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;24&quot;,&quot;iso&quot;:&quot;100&quot;,&quot;shutter_speed&quot;:&quot;0.005&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="PhotoDemon radial blur" data-image-description="" data-medium-file="http://www.tannerhelland.com/wp-content/uploads/PhotoDemon-radial-blur-300x201.jpg" data-large-file="http://www.tannerhelland.com/wp-content/uploads/PhotoDemon-radial-blur-600x402.jpg" src="http://www.tannerhelland.com/wp-content/uploads/PhotoDemon-radial-blur.jpg" alt="The top-left corner of the image after PhotoDemon&#039;s radial blur.  Buttery smooth, and accurate edge handling." width="700" height="469" class="size-full wp-image-5115" srcset="http://www.tannerhelland.com/wp-content/uploads/PhotoDemon-radial-blur.jpg 700w, http://www.tannerhelland.com/wp-content/uploads/PhotoDemon-radial-blur-300x201.jpg 300w, http://www.tannerhelland.com/wp-content/uploads/PhotoDemon-radial-blur-600x402.jpg 600w, http://www.tannerhelland.com/wp-content/uploads/PhotoDemon-radial-blur-180x120.jpg 180w, http://www.tannerhelland.com/wp-content/uploads/PhotoDemon-radial-blur-50x33.jpg 50w, http://www.tannerhelland.com/wp-content/uploads/PhotoDemon-radial-blur-75x50.jpg 75w, http://www.tannerhelland.com/wp-content/uploads/PhotoDemon-radial-blur-200x134.jpg 200w" sizes="(max-width: 700px) 100vw, 700px" /></a><figcaption id="caption-attachment-5115" class="wp-caption-text">The top-left corner of the image after PhotoDemon&#8217;s radial blur.  Buttery smooth, and accurate edge handling.</figcaption></figure>
<figure id="attachment_5116" aria-describedby="caption-attachment-5116" style="width: 700px" class="wp-caption aligncenter"><a href="http://www.tannerhelland.com/5109/performance-photodemon-gimp-paintnet/paint-dot-net-radial-blur/" rel="attachment wp-att-5116"><img data-attachment-id="5116" data-permalink="http://www.tannerhelland.com/5109/performance-photodemon-gimp-paintnet/paint-dot-net-radial-blur/" data-orig-file="http://www.tannerhelland.com/wp-content/uploads/Paint-dot-Net-radial-blur.jpg" data-orig-size="700,469" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;7.1&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;NIKON D200&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;1148122570&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;24&quot;,&quot;iso&quot;:&quot;100&quot;,&quot;shutter_speed&quot;:&quot;0.005&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="Paint dot Net radial blur" data-image-description="" data-medium-file="http://www.tannerhelland.com/wp-content/uploads/Paint-dot-Net-radial-blur-300x201.jpg" data-large-file="http://www.tannerhelland.com/wp-content/uploads/Paint-dot-Net-radial-blur-600x402.jpg" src="http://www.tannerhelland.com/wp-content/uploads/Paint-dot-Net-radial-blur.jpg" alt="Same corner, but from Paint.NET&#039;s radial blur.  Nasty Moire patterns, and problematic handling in the corner - from an algorithm that took 4x longer to run." width="700" height="469" class="size-full wp-image-5116" srcset="http://www.tannerhelland.com/wp-content/uploads/Paint-dot-Net-radial-blur.jpg 700w, http://www.tannerhelland.com/wp-content/uploads/Paint-dot-Net-radial-blur-300x201.jpg 300w, http://www.tannerhelland.com/wp-content/uploads/Paint-dot-Net-radial-blur-600x402.jpg 600w, http://www.tannerhelland.com/wp-content/uploads/Paint-dot-Net-radial-blur-180x120.jpg 180w, http://www.tannerhelland.com/wp-content/uploads/Paint-dot-Net-radial-blur-50x33.jpg 50w, http://www.tannerhelland.com/wp-content/uploads/Paint-dot-Net-radial-blur-75x50.jpg 75w, http://www.tannerhelland.com/wp-content/uploads/Paint-dot-Net-radial-blur-200x134.jpg 200w" sizes="(max-width: 700px) 100vw, 700px" /></a><figcaption id="caption-attachment-5116" class="wp-caption-text">Same corner, but from Paint.NET&#8217;s radial blur.  Nasty Moire patterns, and problematic handling in the corner &#8211; from an algorithm that took 4x longer to run.</figcaption></figure>
<h2 class="cv_title">Zoom Blur</h2>
<figure id="attachment_5117" aria-describedby="caption-attachment-5117" style="width: 695px" class="wp-caption aligncenter"><a href="http://www.tannerhelland.com/5109/performance-photodemon-gimp-paintnet/zoom/" rel="attachment wp-att-5117"><img data-attachment-id="5117" data-permalink="http://www.tannerhelland.com/5109/performance-photodemon-gimp-paintnet/zoom/" data-orig-file="http://www.tannerhelland.com/wp-content/uploads/Zoom.png" data-orig-size="695,373" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="Zoom" data-image-description="" data-medium-file="http://www.tannerhelland.com/wp-content/uploads/Zoom-300x161.png" data-large-file="http://www.tannerhelland.com/wp-content/uploads/Zoom-600x322.png" src="http://www.tannerhelland.com/wp-content/uploads/Zoom.png" alt="No, that huge green bar is not an error.  GIMP took a whopping 17 minutes to render a 200px zoom blur.  PhotoDemon&#039;s &quot;traditional&quot; mode was used to provide comparable output.  Paint.NET does not offer any specialized options for this tool." width="695" height="373" class="size-full wp-image-5117" srcset="http://www.tannerhelland.com/wp-content/uploads/Zoom.png 695w, http://www.tannerhelland.com/wp-content/uploads/Zoom-300x161.png 300w, http://www.tannerhelland.com/wp-content/uploads/Zoom-600x322.png 600w, http://www.tannerhelland.com/wp-content/uploads/Zoom-180x96.png 180w, http://www.tannerhelland.com/wp-content/uploads/Zoom-50x26.png 50w, http://www.tannerhelland.com/wp-content/uploads/Zoom-75x40.png 75w, http://www.tannerhelland.com/wp-content/uploads/Zoom-200x107.png 200w" sizes="(max-width: 695px) 100vw, 695px" /></a><figcaption id="caption-attachment-5117" class="wp-caption-text">No, that huge green bar is not an error.  GIMP took a whopping 17 minutes to render a 200px zoom blur.  PhotoDemon&#8217;s &#8220;traditional&#8221; mode was used to provide comparable output.  Paint.NET does not offer any specialized options for this tool.</figcaption></figure>
<p>Last up is Zoom Blur, and we have a surprising winner!  Paint.NET&#8217;s zoom blur implementation is excellent &#8211; great quality, very fast, and overall a huge improvement from their other blur tools.  I have no idea why Zoom Blur is significantly faster than their Gaussian Blur implementation at a comparable pixel size, so I can only assume that some kind of specialized optimizations have been added.  Nice work, Paint.NET team!</p>
<p>GIMP&#8230; I don&#8217;t even know what to say.  It&#8217;s possible that I triggered some sort of problem with GIMP&#8217;s tile-based processing system, because there is no good way to explain a 17-minute processing time for such a straightforward function.  Even a naive implementation shouldn&#8217;t take anywhere near that long.  Their implementation has loops nested five-deep (dear god), and while bilinear interpolation is used to improve output, that algorithm is so poorly written that I frankly think they should consider removing it completely.  Even at very low distances, rendering takes forever.  The original copyright date on the source file is 1997, so perhaps someone familiar with GIMP&#8217;s internals should give this one a second look.</p>
<p>PhotoDemon uses the same trick here as with radial blur.  The image is converted to polar coordinates (with swapped x and y values compared to the radial blur conversion), a horizontal blur is applied, then the image is converted back.  Again, there is quality loss at low values, and both Paint.NET and GIMP provide better-quality output at very small radii.  To mitigate this, I provide a second style on that dialog, which uses an iterative image-sized alpha blend to generate a blur.  One of the neat things about that approach is that the image can be zoomed-out as well as zoomed-in.</p>
<figure id="attachment_5118" aria-describedby="caption-attachment-5118" style="width: 600px" class="wp-caption aligncenter"><a href="http://www.tannerhelland.com/5109/performance-photodemon-gimp-paintnet/photodemon-zoom-blur-screenshot/" rel="attachment wp-att-5118"><img data-attachment-id="5118" data-permalink="http://www.tannerhelland.com/5109/performance-photodemon-gimp-paintnet/photodemon-zoom-blur-screenshot/" data-orig-file="http://www.tannerhelland.com/wp-content/uploads/PhotoDemon-Zoom-Blur-screenshot.jpg" data-orig-size="818,470" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="PhotoDemon Zoom Blur screenshot" data-image-description="" data-medium-file="http://www.tannerhelland.com/wp-content/uploads/PhotoDemon-Zoom-Blur-screenshot-300x172.jpg" data-large-file="http://www.tannerhelland.com/wp-content/uploads/PhotoDemon-Zoom-Blur-screenshot-600x344.jpg" src="http://www.tannerhelland.com/wp-content/uploads/PhotoDemon-Zoom-Blur-screenshot-600x344.jpg" alt="I doubt there is a legitimate use for zoom-blur-outward like this, but it wasn&#039;t any extra work to implement.  :)" width="600" height="344" class="size-large wp-image-5118" srcset="http://www.tannerhelland.com/wp-content/uploads/PhotoDemon-Zoom-Blur-screenshot-600x344.jpg 600w, http://www.tannerhelland.com/wp-content/uploads/PhotoDemon-Zoom-Blur-screenshot-300x172.jpg 300w, http://www.tannerhelland.com/wp-content/uploads/PhotoDemon-Zoom-Blur-screenshot-180x103.jpg 180w, http://www.tannerhelland.com/wp-content/uploads/PhotoDemon-Zoom-Blur-screenshot-50x28.jpg 50w, http://www.tannerhelland.com/wp-content/uploads/PhotoDemon-Zoom-Blur-screenshot-75x43.jpg 75w, http://www.tannerhelland.com/wp-content/uploads/PhotoDemon-Zoom-Blur-screenshot-200x114.jpg 200w, http://www.tannerhelland.com/wp-content/uploads/PhotoDemon-Zoom-Blur-screenshot.jpg 818w" sizes="(max-width: 600px) 100vw, 600px" /></a><figcaption id="caption-attachment-5118" class="wp-caption-text">I doubt there is a legitimate use for zoom-blur-outward like this, but it wasn&#8217;t any extra work to implement.  :)</figcaption></figure>
<h2 class="cv_title">Conclusions</h2>
<p>Blur algorithm performance is hugely variable in both GIMP and Paint.NET.  I&#8217;ll admit &#8211; I find it a bit amusing that my little PhotoDemon project, written with a 15-year-old programming language and compiler, outperforms them so handily in multiple areas, despite my implementations being generally lazy, single-threaded, and heavily CPU-bound.  I also call &#8220;bullshit&#8221; on Paint.NET&#8217;s claim about &#8220;extensive work going into making Paint.NET the fastest image editor available.&#8221;  I think the Paint.NET team does great work, and their software is a wonderful improvement over many free and paid photo editors, but its performance is greatly lacking in a number of areas.</p>
<p>Then there is GIMP.  While I am very grateful for their software, and have learned to love its many quirks, there&#8217;s no denying that whole swaths of its source code are in desperate need of a revamp.  I imagine there is no point revisiting items like blur until they complete their migration to <a href="http://www.gegl.org/">GEGL</a> &#8211; perhaps then we will see big improvements in the performance of these various blur functions.</p>
<p>If there&#8217;s a take-home message to all this, it&#8217;s that algorithms will always be more important than programming languages.  A well-written algorithm in a &#8220;slow&#8221; language will often outperform a poorly written algorithm in a &#8220;fast&#8221; language.  VB6 may be forgotten and nearly dead, but I&#8217;m happy to see it staying competitive with the titans of the &#8220;free photo editor&#8221; world.  :)</p>
<p>If you read the article all the way to here, I hope you&#8217;ll give PhotoDemon a look:</p>
<p><a href="http://www.tannerhelland.com/photodemon/#download">http://www.tannerhelland.com/photodemon/#download</a></p>
<p>For a free, open-source photo editor, it has a lot of nice features, and I can empirically state that it outperforms GIMP and Paint.NET in at least a few areas!  (The current nightly build is pretty much how the next stable release (6.0) will look, minus a few minor bugfixes still to complete.)</p>
]]></content:encoded>
							<wfw:commentRss>http://www.tannerhelland.com/5109/performance-photodemon-gimp-paintnet/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
						<post-id xmlns="com-wordpress:feed-additions:1">5109</post-id>	</item>
		<item>
		<title>How to compile zLib 1.2.8 (WINAPI / WAPI / STDCALL version)</title>
		<link>http://www.tannerhelland.com/5076/compile-zlib-winapi-wapi-stdcall/</link>
				<comments>http://www.tannerhelland.com/5076/compile-zlib-winapi-wapi-stdcall/#comments</comments>
				<pubDate>Wed, 07 Aug 2013 14:12:27 +0000</pubDate>
		<dc:creator><![CDATA[Tanner]]></dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[VB]]></category>
		<category><![CDATA[zLib]]></category>

		<guid isPermaLink="false">http://www.tannerhelland.com/?p=5076</guid>
				<description><![CDATA[This is not a full-blown article - just a quick HOWTO for people who require the latest version of zLib and want to use it from a language (like classic VB) that requires a standard WinAPI interface.  You must compile zLib yourself using the free 2012 version of Visual Studio Express...]]></description>
								<content:encoded><![CDATA[<p>This is not a full-blown article &#8211; just a quick HOWTO for people who require the latest version of zLib and want to use it from a language (like classic VB) that requires a standard WinAPI interface.</p>
<p>By default, zLib uses C calling conventions (CDECL).  Gilles Vollant has helpfully provided <a href="http://www.winimage.com/zLibDll/index.html">an STDCALL version of zLib</a> in the past, but his site only provides version 1.2.5, which dates back to January 2012.  zLib is currently on version 1.2.8.</p>
<p>Gilles has contributed his WAPI fixes to the core zLib distribution so that anyone can compile it themselves.  To do this, you will need to download:</p>
<ul>
<li>The latest version of the zLib source code (<a href="http://zlib.net/zlib128.zip">http://zlib.net/zlib128.zip</a> at the time of this writing).</li>
<li>The express version of Visual Studio 2012, freely downloadable from <a href="http://www.microsoft.com/visualstudio/eng/products/visual-studio-express-products">http://www.microsoft.com/visualstudio/eng/products/visual-studio-express-products</a></li>
</ul>
<p>Once both of those are downloaded (and updated, as VS 2012 will require you to install several service packs), follow these steps to compile zLib yourself:</p>
<ol>
<li>Extract the entire zLib file and navigate to the /contrib/masmx86 folder.  Open the &#8220;bld_ml32.bat&#8221; file in a text editor.</li>
<li>Add the &#8220;/safeseh&#8221; switch to both lines in that file (e.g. &#8220;ml /safeseh /coff /Zi /c /Flmatch686.lst match686.asm&#8221;).  Then save and exit.</li>
<li>Navigate to the /contrib/vstudio/vc11/ folder.  Open the zlibvc.sln file in your newly installed Visual Studio 2012 Express.</li>
<li>In the Solution Explorer (top-right by default), right-click &#8220;zlibstat&#8221; then select &#8220;Properties&#8221; at the bottom.</li>
<li>Go to Configuration Properties -> C/C++ -> Preprocessor, and in the Preprocessor Definitions line remove “ZLIB_WINAPI;” (don&#8217;t forget to remove the trailing semicolon).</li>
<li>Now, we need to fix a recently introduced problem that relies on Win8 functionality.  In the Solution Explorer, navigate to zlibvc -> iowin32.c.  Double-click to open the file.</li>
<li>Find the line of text that reads &#8220;#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)&#8221;.  Change this line to &#8220;#if WINAPI_FAMILY_ONE_PARTITION(WINAPI_FAMILY_DESKTOP_APP, WINAPI_PARTITION_APP)&#8221;.  (Thanks to <a href="http://stackoverflow.com/questions/17102770/using-the-windows-8-sdk-to-compile-for-windows-7/17113126#17113126">this link</a> for this fix.)</li>
<li>zLib uses a Version number declaration that can cause the build process to fail.  To fix this, go back to the Solution Explorer, then navigate to zlibvc -> zlibvc.def.  Double-click to open.</li>
<li>Change the line that reads &#8220;VERSION 1.2.8&#8221; to read &#8220;VERSION 1.28&#8221;.</li>
<li>Finally, go to the Build -> Configuration Manager menu and change the Active Solution Configuration to &#8220;Release&#8221;.</li>
<li>Exit that window and press F7 (or click the Build -> Build Solution menu).  The project should successfully build.</li>
<li>You can find your newly compiled zlibwapi.dll file in the /contrib/vstudio/vc11/x86/ZlibDllRelease/ folder.</li>
</ol>
]]></content:encoded>
							<wfw:commentRss>http://www.tannerhelland.com/5076/compile-zlib-winapi-wapi-stdcall/feed/</wfw:commentRss>
		<slash:comments>27</slash:comments>
						<post-id xmlns="com-wordpress:feed-additions:1">5076</post-id>	</item>
		<item>
		<title>PhotoDemon 6.0 preview and progress report</title>
		<link>http://www.tannerhelland.com/4996/photodemon-60-preview/</link>
				<pubDate>Thu, 01 Aug 2013 16:15:04 +0000</pubDate>
		<dc:creator><![CDATA[Tanner]]></dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[PhotoDemon]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Site News]]></category>
		<category><![CDATA[EXIF]]></category>
		<category><![CDATA[GPS]]></category>
		<category><![CDATA[image processing]]></category>
		<category><![CDATA[Paint.Net]]></category>
		<category><![CDATA[PD]]></category>
		<category><![CDATA[Photoshop]]></category>
		<category><![CDATA[VB6]]></category>

		<guid isPermaLink="false">http://www.tannerhelland.com/?p=4996</guid>
				<description><![CDATA[The next version of PhotoDemon is getting better and better, and while it's not quite ready for an official beta release, I thought it would be fun to share some of its big new features, including Italian language support, state-of-the-art Selection tools, metadata (EXIF) support, a new curves tool, photograph perspective correction, digital Wratten filters, and much more...]]></description>
								<content:encoded><![CDATA[<figure id="attachment_5040" aria-describedby="caption-attachment-5040" style="width: 600px" class="wp-caption aligncenter"><a href="http://www.tannerhelland.com/4996/photodemon-60-preview/2013_splash_2/" rel="attachment wp-att-5040"><img data-attachment-id="5040" data-permalink="http://www.tannerhelland.com/4996/photodemon-60-preview/2013_splash_2/" data-orig-file="http://www.tannerhelland.com/wp-content/uploads/2013_splash_2.jpg" data-orig-size="779,551" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="2013_splash_2" data-image-description="" data-medium-file="http://www.tannerhelland.com/wp-content/uploads/2013_splash_2-300x212.jpg" data-large-file="http://www.tannerhelland.com/wp-content/uploads/2013_splash_2-600x424.jpg" src="http://www.tannerhelland.com/wp-content/uploads/2013_splash_2-600x424.jpg" alt="PhotoDemon&#039;s new splash screen.  I&#039;d say this is a &quot;huge&quot; improvement over the old one, but that might be understating it... :)" width="600" height="424" class="size-large wp-image-5040" srcset="http://www.tannerhelland.com/wp-content/uploads/2013_splash_2-600x424.jpg 600w, http://www.tannerhelland.com/wp-content/uploads/2013_splash_2-300x212.jpg 300w, http://www.tannerhelland.com/wp-content/uploads/2013_splash_2-180x127.jpg 180w, http://www.tannerhelland.com/wp-content/uploads/2013_splash_2-50x35.jpg 50w, http://www.tannerhelland.com/wp-content/uploads/2013_splash_2-75x53.jpg 75w, http://www.tannerhelland.com/wp-content/uploads/2013_splash_2-200x141.jpg 200w, http://www.tannerhelland.com/wp-content/uploads/2013_splash_2.jpg 779w" sizes="(max-width: 600px) 100vw, 600px" /></a><figcaption id="caption-attachment-5040" class="wp-caption-text">PhotoDemon&#8217;s new splash screen.  I&#8217;d say this is a &#8220;huge&#8221; improvement over the old one, but that might be understating it&#8230;</figcaption></figure>
<h2 class="cv_title"><a name="overview"></a>overview</h2>
<p>It&#8217;s been awhile since I posted any news on PhotoDemon, but not because work has slowed &#8211; just the opposite, in fact!  The development version of PD is cranking ahead full-steam, and thanks to a number of outside contributors, the next version will include a wider set of improvements than any previous version.  There&#8217;s still quite a bit of testing and fine-tuning to do, so this article does not include a downloadable beta release &#8211; rather, the article is meant to serve as a preview of the upcoming 6.0 release and all the cool new features it provides.  (Of course, developers or anyone with access to Visual Basic 6.0 can compile the latest version themselves by <a href="https://github.com/tannerhelland/PhotoDemon">visiting PhotoDemon&#8217;s GitHub page</a>.  New testers and contributors are always welcome!)</p>
<p>First, an explanation on why the next PhotoDemon release will be version 6.0 instead of the expected 5.6.  The next release will break backward compatibility with a number of PhotoDemon files, including any saved macros or filters.  This break is necessary to implement a large overhaul of PhotoDemon&#8217;s internals &#8211; an overhaul that makes the program faster, smaller, more stable, and much easier to develop and maintain.  The goal is to have all of PhotoDemon&#8217;s specialized file formats (including macros) use XML for storage.  This allows both users and other software developers to read and edit PhotoDemon files from any general-purpose text editor.  This change will also make it much easier to add new macro features without breaking old macro files.  (The current macro format was developed over a decade ago, when the program was only meant for personal use, and it is extremely flimsy and difficult to extend &#8211; hence the need for a redesign.)</p>
<p>The downside of this change is that any current macros will need to be re-recorded in version 6.0, as version 4.X and 5.X macros will no longer be supported.  I apologize for this inconvenience, and I promise to do my best to avoid breaking backward compatibility in the future.</p>
<p>The 6.0 release will also include important interface changes &#8211; such as a redesigned main menu and tool window &#8211; further supporting the switch to a new major version number, and for developers, the program&#8217;s central action processor has been redesigned from the ground up, making it easier than ever to get involved in development.</p>
<p>So with that out of the way, let&#8217;s talk about the good stuff, namely: what&#8217;s coming in 6.0?  Here is a list of features and updates that are already finished and available in the current development build (again, downloadable at <a href="https://github.com/tannerhelland/PhotoDemon">https://github.com/tannerhelland/PhotoDemon</a>).</p>
<h2 class="cv_title">Italian language support</h2>
<p>Courtesy of talented contributor GioRock is a new Italian language option for PhotoDemon.  Many thanks to GioRock for this huge contribution.</p>
<h2 class="cv_title">Other internationalization improvements</h2>
<p>With the help of GioRock and Frank Donckers (you may remember Frank as the brilliant developer behind PhotoDemon&#8217;s language translation engine), a number of other improvements are now available for international PhotoDemon users:</p>
<ul>
<li>The comma &#8220;,&#8221; is now supported as a decimal separator in all tools.  Previously, use of a comma could lead to critical errors.</li>
<li>Translated text is now automatically resized if it is larger than its tool window.  This helps text in verbose languages remain fully readable.</li>
<li>Translations that span multiple lines (such as long tooltips) are now automatically handled by the program.  This reduces the burden on translators to manually fit translated text longer than its English equivalent.</li>
</ul>
<figure id="attachment_5033" aria-describedby="caption-attachment-5033" style="width: 600px" class="wp-caption aligncenter"><a href="http://www.tannerhelland.com/4996/photodemon-60-preview/photodemon_italian_translation/" rel="attachment wp-att-5033"><img data-attachment-id="5033" data-permalink="http://www.tannerhelland.com/4996/photodemon-60-preview/photodemon_italian_translation/" data-orig-file="http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_Italian_Translation.jpg" data-orig-size="767,542" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="PhotoDemon_Italian_Translation" data-image-description="" data-medium-file="http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_Italian_Translation-300x211.jpg" data-large-file="http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_Italian_Translation-600x423.jpg" src="http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_Italian_Translation-600x423.jpg" alt="Here is the Options panel in full Italian.  The text of the bottom checkbox on the right-hand panel originally extended past the edge of the dialog, but PhotoDemon has detected that and shrunk the text accordingly.  This requires no work on the part of the translator!" width="600" height="423" class="size-large wp-image-5033" srcset="http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_Italian_Translation-600x423.jpg 600w, http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_Italian_Translation-300x211.jpg 300w, http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_Italian_Translation-180x127.jpg 180w, http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_Italian_Translation-50x35.jpg 50w, http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_Italian_Translation-75x52.jpg 75w, http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_Italian_Translation-200x141.jpg 200w, http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_Italian_Translation.jpg 767w" sizes="(max-width: 600px) 100vw, 600px" /></a><figcaption id="caption-attachment-5033" class="wp-caption-text">Here is the Options panel in full Italian.  The text of the two checkboxes on the right-hand panel originally extended past the edge of the dialog, but PhotoDemon has detected that and shrunk the text accordingly.  (This required no work on the part of the translator!)</figcaption></figure>
<h2 class="cv_title">New feature: advanced selection tools</h2>
<figure id="attachment_5034" aria-describedby="caption-attachment-5034" style="width: 600px" class="wp-caption aligncenter"><a href="http://www.tannerhelland.com/4996/photodemon-60-preview/photodemon_selection_overview/" rel="attachment wp-att-5034"><img data-attachment-id="5034" data-permalink="http://www.tannerhelland.com/4996/photodemon-60-preview/photodemon_selection_overview/" data-orig-file="http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_Selection_Overview.jpg" data-orig-size="977,580" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="PhotoDemon_Selection_Overview" data-image-description="" data-medium-file="http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_Selection_Overview-300x178.jpg" data-large-file="http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_Selection_Overview-600x356.jpg" src="http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_Selection_Overview-600x356.jpg" alt="The new elliptical selection tool, with live feathering (feathering is the softened selection edges)." width="600" height="356" class="size-large wp-image-5034" srcset="http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_Selection_Overview-600x356.jpg 600w, http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_Selection_Overview-300x178.jpg 300w, http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_Selection_Overview-180x106.jpg 180w, http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_Selection_Overview-50x29.jpg 50w, http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_Selection_Overview-75x44.jpg 75w, http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_Selection_Overview-900x534.jpg 900w, http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_Selection_Overview-200x118.jpg 200w, http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_Selection_Overview.jpg 977w" sizes="(max-width: 600px) 100vw, 600px" /></a><figcaption id="caption-attachment-5034" class="wp-caption-text">The new elliptical selection tool, with live edge feathering.</figcaption></figure>
<p>PhotoDemon 6.0 includes a completely redesigned selection tool engine.  At present, the following dedicated selection tools are available:</p>
<ul>
<li>Rectangular and Square selections (with optional rounded corners, including variable corner radii)</li>
<li>Elliptical and Circular selections</li>
<li>Line selections: unique to PhotoDemon, this tool allows you to select a line-shaped area, very helpful for things like <a href="http://en.wikipedia.org/wiki/Tilt-shift">tilt-shift effects</a> (see below)</li>
</ul>
<figure id="attachment_5055" aria-describedby="caption-attachment-5055" style="width: 600px" class="wp-caption aligncenter"><a href="http://www.tannerhelland.com/4996/photodemon-60-preview/city-fake-miniature/" rel="attachment wp-att-5055"><img data-attachment-id="5055" data-permalink="http://www.tannerhelland.com/4996/photodemon-60-preview/city-fake-miniature/" data-orig-file="http://www.tannerhelland.com/wp-content/uploads/City-fake-miniature.jpg" data-orig-size="960,640" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="City fake miniature" data-image-description="" data-medium-file="http://www.tannerhelland.com/wp-content/uploads/City-fake-miniature-300x200.jpg" data-large-file="http://www.tannerhelland.com/wp-content/uploads/City-fake-miniature-600x400.jpg" src="http://www.tannerhelland.com/wp-content/uploads/City-fake-miniature-600x400.jpg" alt="PhotoDemon&#039;s line selection tool was combined with Gaussian Blur to simulate this fake miniature photograph of the city of Jodhpur.  (Photograph and concept taken from this Wikipedia article.)" width="600" height="400" class="size-large wp-image-5055" srcset="http://www.tannerhelland.com/wp-content/uploads/City-fake-miniature-600x400.jpg 600w, http://www.tannerhelland.com/wp-content/uploads/City-fake-miniature-300x200.jpg 300w, http://www.tannerhelland.com/wp-content/uploads/City-fake-miniature-180x120.jpg 180w, http://www.tannerhelland.com/wp-content/uploads/City-fake-miniature-50x33.jpg 50w, http://www.tannerhelland.com/wp-content/uploads/City-fake-miniature-75x50.jpg 75w, http://www.tannerhelland.com/wp-content/uploads/City-fake-miniature-900x600.jpg 900w, http://www.tannerhelland.com/wp-content/uploads/City-fake-miniature-200x133.jpg 200w, http://www.tannerhelland.com/wp-content/uploads/City-fake-miniature.jpg 960w" sizes="(max-width: 600px) 100vw, 600px" /></a><figcaption id="caption-attachment-5055" class="wp-caption-text">PhotoDemon&#8217;s line selection tool was combined with Gaussian Blur to simulate this fake miniature photograph of the city of Jodhpur.  (Photograph and concept taken from <a href="http://en.wikipedia.org/wiki/Miniature_faking">this Wikipedia article</a>.)</figcaption></figure>
<p>Each selection tool supports the following features:</p>
<ul>
<li>Live selection coordinate and size display</li>
<li>On-canvas resizing by click-dragging nodes</li>
<li>Selections can be nudged or moved via text entry</li>
<li>Shift can be held to lock a 1:1 aspect ratio (e.g. squares or circles)</li>
<li>Live smoothing options: none, antialiased, or variable radius feathering (live feathering is only available on Windows 7)</li>
<li>Live selection types: interior, exterior, or bordered, with live border radius selection</li>
</ul>
<p>In addition to these dedicated tools, a new Selection menu is available with additional selection-related features.</p>
<figure id="attachment_5035" aria-describedby="caption-attachment-5035" style="width: 270px" class="wp-caption aligncenter"><a href="http://www.tannerhelland.com/4996/photodemon-60-preview/photodemon_selection_menu/" rel="attachment wp-att-5035"><img data-attachment-id="5035" data-permalink="http://www.tannerhelland.com/4996/photodemon-60-preview/photodemon_selection_menu/" data-orig-file="http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_Selection_Menu.jpg" data-orig-size="270,281" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="PhotoDemon_Selection_Menu" data-image-description="" data-medium-file="http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_Selection_Menu.jpg" data-large-file="http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_Selection_Menu.jpg" src="http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_Selection_Menu.jpg" alt="PhotoDemon&#039;s new Select menu" width="270" height="281" class="size-full wp-image-5035" srcset="http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_Selection_Menu.jpg 270w, http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_Selection_Menu-172x180.jpg 172w, http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_Selection_Menu-48x50.jpg 48w, http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_Selection_Menu-72x75.jpg 72w, http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_Selection_Menu-192x200.jpg 192w" sizes="(max-width: 270px) 100vw, 270px" /></a><figcaption id="caption-attachment-5035" class="wp-caption-text">PhotoDemon&#8217;s new Select menu</figcaption></figure>
<ul>
<li>Select All and Select None</li>
<li>Invert Selection (switch selected and un-selected pixels, with full feathering support!)</li>
<li>Grow/Shrink Selection</li>
<li>Border selection, which takes the current selection and selects only its border</li>
<li>Feather and sharpen selection</li>
<li>Load and save selections</li>
</ul>
<p>Thanks to the selection engine redesign, these features will automatically work with future selection tool implementations, including polygon/free-draw and &#8220;magic wand&#8221; selections.</p>
<p>Another huge improvement is integrating all selection actions into the Undo/Redo engine.  If you create, move, resize, or apply any other action to a selection, you can now Undo/Redo that operation. </p>
<p>Selections are now fully integrated into the Record Macro tool.  </p>
<p>Copy and Crop now support selections of any shape, making it trivial to crop circular or rounded-rectangle regions, or copy them for use in another program.  (Feathered selections are automatically converted to 32bpp images, with the feathering applied in the alpha channel.)</p>
<p>Finally, the core Selection tools have been rewritten to use vector coordinates.  This means that selections loaded from file are automatically resized to fit the current image, making them extremely useful for Batch Processing operations.</p>
<h2 class="cv_title">New image metadata (EXIF, XMP, IPTC) support</h2>
<p>PhotoDemon now includes the marvelous <a href="http://www.sno.phy.queensu.ca/~phil/exiftool/">ExifTool project</a> as an optional plugin.  ExifTool is the most comprehensive image metadata handler currently available, and PhotoDemon makes full use of its ability to handle every known type of image metadata, from the popular EXIF format (used in JPEGs) to obscure maker notes for all major DSLR brands.</p>
<figure id="attachment_5037" aria-describedby="caption-attachment-5037" style="width: 600px" class="wp-caption aligncenter"><a href="http://www.tannerhelland.com/4996/photodemon-60-preview/photodemon_metadata_browser/" rel="attachment wp-att-5037"><img data-attachment-id="5037" data-permalink="http://www.tannerhelland.com/4996/photodemon-60-preview/photodemon_metadata_browser/" data-orig-file="http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_Metadata_Browser.jpg" data-orig-size="817,510" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="PhotoDemon_Metadata_Browser" data-image-description="" data-medium-file="http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_Metadata_Browser-300x187.jpg" data-large-file="http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_Metadata_Browser-600x374.jpg" src="http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_Metadata_Browser-600x374.jpg" alt="PhotoDemon&#039;s new custom-built Image Metadata browser.  This image is a RAW-format file from an Olympus DSLR.  ExifTool allows us to peruse all the custom Olympus data entries." width="600" height="374" class="size-large wp-image-5037" srcset="http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_Metadata_Browser-600x374.jpg 600w, http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_Metadata_Browser-300x187.jpg 300w, http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_Metadata_Browser-180x112.jpg 180w, http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_Metadata_Browser-50x31.jpg 50w, http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_Metadata_Browser-75x46.jpg 75w, http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_Metadata_Browser-200x124.jpg 200w, http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_Metadata_Browser.jpg 817w" sizes="(max-width: 600px) 100vw, 600px" /></a><figcaption id="caption-attachment-5037" class="wp-caption-text">PhotoDemon&#8217;s new custom-built Image Metadata browser.  The metadata in question comes from a RAW-format photo taken with an Olympus DSLR camera.  Note that ExifTool allows us to peruse all the non-standard Olympus data entries.</figcaption></figure>
<p>A new integrated metadata browser automatically sorts metadata by category, and it allows the user to see actual or human-friendly metadata tags.  The browser fully integrates with ExifTool&#8217;s multilanguage capabilities, sparing translators from any extra work!</p>
<p>When saving images, the Preferences manager now provides options for metadata embedding:</p>
<figure id="attachment_5038" aria-describedby="caption-attachment-5038" style="width: 600px" class="wp-caption aligncenter"><a href="http://www.tannerhelland.com/4996/photodemon-60-preview/photodemon_metadata_preferences/" rel="attachment wp-att-5038"><img data-attachment-id="5038" data-permalink="http://www.tannerhelland.com/4996/photodemon-60-preview/photodemon_metadata_preferences/" data-orig-file="http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_Metadata_Preferences.jpg" data-orig-size="767,542" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="PhotoDemon_Metadata_Preferences" data-image-description="" data-medium-file="http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_Metadata_Preferences-300x211.jpg" data-large-file="http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_Metadata_Preferences-600x423.jpg" src="http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_Metadata_Preferences-600x423.jpg" alt="PhotoDemon&#039;s new metadata handling preferences." width="600" height="423" class="size-large wp-image-5038" srcset="http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_Metadata_Preferences-600x423.jpg 600w, http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_Metadata_Preferences-300x211.jpg 300w, http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_Metadata_Preferences-180x127.jpg 180w, http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_Metadata_Preferences-50x35.jpg 50w, http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_Metadata_Preferences-75x52.jpg 75w, http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_Metadata_Preferences-200x141.jpg 200w, http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_Metadata_Preferences.jpg 767w" sizes="(max-width: 600px) 100vw, 600px" /></a><figcaption id="caption-attachment-5038" class="wp-caption-text">PhotoDemon&#8217;s new metadata handling preferences.</figcaption></figure>
<p>Unique to PhotoDemon is a privacy-centric metadata option, which aims to remove any personally identifying metadata entries, like serial numbers or GPS coordinates.  By default, the &#8220;preserve all relevant metadata&#8221; option is recommended, which will remove any metadata not relevant to a file format (such as removing maker notes when saving RAW files to JPEG), but retain all other metadata entries.  Metadata can also be fully stripped from exported files.</p>
<p>Also fun is a new Image -> Metadata -> Map GPS Coordinates option, which becomes available if an image contains GPS data.  This option will automatically map the photo&#8217;s location in Google Maps.</p>
<h2 class="cv_title">New tools: too many to mention!</h2>
<p>As always, the next release will include a host of new image editing tools.  Here&#8217;s a small sampling of the latest additions to PhotoDemon&#8217;s repertoire:</p>
<figure id="attachment_5041" aria-describedby="caption-attachment-5041" style="width: 600px" class="wp-caption aligncenter"><a href="http://www.tannerhelland.com/4996/photodemon-60-preview/photodemon_photograph_perspective_correction/" rel="attachment wp-att-5041"><img data-attachment-id="5041" data-permalink="http://www.tannerhelland.com/4996/photodemon-60-preview/photodemon_photograph_perspective_correction/" data-orig-file="http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_Photograph_Perspective_Correction.jpg" data-orig-size="1025,675" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="PhotoDemon_Photograph_Perspective_Correction" data-image-description="" data-medium-file="http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_Photograph_Perspective_Correction-300x197.jpg" data-large-file="http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_Photograph_Perspective_Correction-600x395.jpg" src="http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_Photograph_Perspective_Correction-600x395.jpg" alt="PhotoDemon&#039;s new interactive perspective correction tool.  Drag the corner nodes to re-visualize the image in real-time, allowing you to do things like fix crooked buildings, as in this photograph from a recent trip to San Francisco." width="600" height="395" class="size-large wp-image-5041" srcset="http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_Photograph_Perspective_Correction-600x395.jpg 600w, http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_Photograph_Perspective_Correction-300x197.jpg 300w, http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_Photograph_Perspective_Correction-180x118.jpg 180w, http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_Photograph_Perspective_Correction-50x32.jpg 50w, http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_Photograph_Perspective_Correction-75x49.jpg 75w, http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_Photograph_Perspective_Correction-900x592.jpg 900w, http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_Photograph_Perspective_Correction-200x131.jpg 200w, http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_Photograph_Perspective_Correction.jpg 1025w" sizes="(max-width: 600px) 100vw, 600px" /></a><figcaption id="caption-attachment-5041" class="wp-caption-text">PhotoDemon&#8217;s new interactive perspective correction tool.  Drag the corner nodes to re-visualize the image in real-time, allowing you to do things like fix crooked buildings, as in this photograph from a recent trip to San Francisco.</figcaption></figure>
<figure id="attachment_5042" aria-describedby="caption-attachment-5042" style="width: 600px" class="wp-caption aligncenter"><a href="http://www.tannerhelland.com/4996/photodemon-60-preview/photodemon_wrattenfilters/" rel="attachment wp-att-5042"><img data-attachment-id="5042" data-permalink="http://www.tannerhelland.com/4996/photodemon-60-preview/photodemon_wrattenfilters/" data-orig-file="http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_WrattenFilters.jpg" data-orig-size="999,470" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="PhotoDemon_WrattenFilters" data-image-description="" data-medium-file="http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_WrattenFilters-300x141.jpg" data-large-file="http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_WrattenFilters-600x282.jpg" src="http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_WrattenFilters-600x282.jpg" alt="PhotoDemon&#039;s new Photo Filter browser.  To my knowledge, this is the most comprehensive collection of post-production Wratten filters in any software, ever.  The interactive photo filter browser provides 50 custom-built photo filters for fixing every possible lighting situation." width="600" height="282" class="size-large wp-image-5042" srcset="http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_WrattenFilters-600x282.jpg 600w, http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_WrattenFilters-300x141.jpg 300w, http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_WrattenFilters-180x84.jpg 180w, http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_WrattenFilters-50x23.jpg 50w, http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_WrattenFilters-75x35.jpg 75w, http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_WrattenFilters-900x423.jpg 900w, http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_WrattenFilters-200x94.jpg 200w, http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_WrattenFilters.jpg 999w" sizes="(max-width: 600px) 100vw, 600px" /></a><figcaption id="caption-attachment-5042" class="wp-caption-text">PhotoDemon&#8217;s new Photo Filter browser.  To my knowledge, this is the most comprehensive collection of digital Wratten filters in any software, ever.  The interactive photo filter browser provides 50 filters, allowing you to make an infinite number of post-production lighting adjustments.</figcaption></figure>
<figure id="attachment_5045" aria-describedby="caption-attachment-5045" style="width: 600px" class="wp-caption aligncenter"><a href="http://www.tannerhelland.com/4996/photodemon-60-preview/photodemon_curves_tool/" rel="attachment wp-att-5045"><img data-attachment-id="5045" data-permalink="http://www.tannerhelland.com/4996/photodemon-60-preview/photodemon_curves_tool/" data-orig-file="http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_Curves_Tool.jpg" data-orig-size="889,581" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="PhotoDemon_Curves_Tool" data-image-description="" data-medium-file="http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_Curves_Tool-300x196.jpg" data-large-file="http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_Curves_Tool-600x392.jpg" src="http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_Curves_Tool-600x392.jpg" alt="PhotoDemon&#039;s new Curves tool.  It supports unlimited curve points, a live histogram overlay, removal of points by right-clicking them, and fully antialiased curve rendering.  In my opinion, this is the loveliest tool in the program, and the loveliest Curves dialog of any mainstream photo editor." width="600" height="392" class="size-large wp-image-5045" srcset="http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_Curves_Tool-600x392.jpg 600w, http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_Curves_Tool-300x196.jpg 300w, http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_Curves_Tool-180x117.jpg 180w, http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_Curves_Tool-50x32.jpg 50w, http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_Curves_Tool-75x49.jpg 75w, http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_Curves_Tool-200x130.jpg 200w, http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_Curves_Tool.jpg 889w" sizes="(max-width: 600px) 100vw, 600px" /></a><figcaption id="caption-attachment-5045" class="wp-caption-text">PhotoDemon&#8217;s new Curves tool.  It supports unlimited nodes, removing nodes by right-clicking, a live histogram overlay, and fully antialiased curve rendering.  In my opinion, this is the loveliest tool in the program, and the loveliest Curves dialog of any mainstream photo editor.</figcaption></figure>
<figure id="attachment_5043" aria-describedby="caption-attachment-5043" style="width: 600px" class="wp-caption aligncenter"><a href="http://www.tannerhelland.com/4996/photodemon-60-preview/photodemon_channel_mixer/" rel="attachment wp-att-5043"><img data-attachment-id="5043" data-permalink="http://www.tannerhelland.com/4996/photodemon-60-preview/photodemon_channel_mixer/" data-orig-file="http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_Channel_Mixer.jpg" data-orig-size="822,470" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="PhotoDemon_Channel_Mixer" data-image-description="" data-medium-file="http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_Channel_Mixer-300x171.jpg" data-large-file="http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_Channel_Mixer-600x343.jpg" src="http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_Channel_Mixer-600x343.jpg" alt="PhotoDemon&#039;s new Channel Mixer.  This tool comes courtesy of outside contributer audioglider, who contributes multiple tools to this release - please shower him with praise!  (The subject of this photo is the latest addition to my family, a beautiful Australian Shepherd / Shetland Sheepdog mix named Yosuke.)" width="600" height="343" class="size-large wp-image-5043" srcset="http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_Channel_Mixer-600x343.jpg 600w, http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_Channel_Mixer-300x171.jpg 300w, http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_Channel_Mixer-180x102.jpg 180w, http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_Channel_Mixer-50x28.jpg 50w, http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_Channel_Mixer-75x42.jpg 75w, http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_Channel_Mixer-200x114.jpg 200w, http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_Channel_Mixer.jpg 822w" sizes="(max-width: 600px) 100vw, 600px" /></a><figcaption id="caption-attachment-5043" class="wp-caption-text">PhotoDemon&#8217;s new Channel Mixer.  This tool comes courtesy of outside developer audioglider, who built multiple tools in this release &#8211; so please shower him with praise!  (The subject of this photo is the latest addition to my family, a beautiful Australian Shepherd / Shetland Sheepdog puppy named Yosuke.)</figcaption></figure>
<figure id="attachment_5047" aria-describedby="caption-attachment-5047" style="width: 435px" class="wp-caption aligncenter"><a href="http://www.tannerhelland.com/4996/photodemon-60-preview/photodemon_canvas_resize/" rel="attachment wp-att-5047"><img data-attachment-id="5047" data-permalink="http://www.tannerhelland.com/4996/photodemon-60-preview/photodemon_canvas_resize/" data-orig-file="http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_Canvas_Resize.jpg" data-orig-size="435,486" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="PhotoDemon_Canvas_Resize" data-image-description="" data-medium-file="http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_Canvas_Resize-268x300.jpg" data-large-file="http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_Canvas_Resize.jpg" src="http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_Canvas_Resize.jpg" alt="PhotoDemon finally includes a Canvas Resize tool." width="435" height="486" class="size-full wp-image-5047" srcset="http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_Canvas_Resize.jpg 435w, http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_Canvas_Resize-268x300.jpg 268w, http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_Canvas_Resize-161x180.jpg 161w, http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_Canvas_Resize-44x50.jpg 44w, http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_Canvas_Resize-67x75.jpg 67w, http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_Canvas_Resize-179x200.jpg 179w" sizes="(max-width: 435px) 100vw, 435px" /></a><figcaption id="caption-attachment-5047" class="wp-caption-text">PhotoDemon finally includes a Canvas Resize tool.</figcaption></figure>
<figure id="attachment_5048" aria-describedby="caption-attachment-5048" style="width: 600px" class="wp-caption aligncenter"><a href="http://www.tannerhelland.com/4996/photodemon-60-preview/photodemon_spherize/" rel="attachment wp-att-5048"><img data-attachment-id="5048" data-permalink="http://www.tannerhelland.com/4996/photodemon-60-preview/photodemon_spherize/" data-orig-file="http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_Spherize.jpg" data-orig-size="823,470" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="PhotoDemon_Spherize" data-image-description="" data-medium-file="http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_Spherize-300x171.jpg" data-large-file="http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_Spherize-600x342.jpg" src="http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_Spherize-600x342.jpg" alt="PhotoDemon&#039;s new Sphere tool lies more in the &quot;Fun&quot; category than the &quot;Practical&quot; one, but that&#039;s okay.  For a bit of extra style, the program can render matching background rays onto the canvas, as shown in the screenshot above." width="600" height="342" class="size-large wp-image-5048" srcset="http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_Spherize-600x342.jpg 600w, http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_Spherize-300x171.jpg 300w, http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_Spherize-180x102.jpg 180w, http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_Spherize-50x28.jpg 50w, http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_Spherize-75x42.jpg 75w, http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_Spherize-200x114.jpg 200w, http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_Spherize.jpg 823w" sizes="(max-width: 600px) 100vw, 600px" /></a><figcaption id="caption-attachment-5048" class="wp-caption-text">PhotoDemon&#8217;s new Sphere tool lies more in the &#8220;Fun&#8221; category than the &#8220;Practical&#8221; one, but that&#8217;s okay.  For a bit of extra style, the program can render matching background rays onto the canvas, as shown in the screenshot above.</figcaption></figure>
<p>For sake of brevity, I&#8217;ll forgo images of the rest of the new tools, namely:</p>
<ul>
<li>Max/min channel</li>
<li>Pan and zoom</li>
<li>Poke</li>
<li>Shear</li>
<li>Squish</li>
<li>Vibrance (developed by audioglider)</li>
</ul>
<h2 class="cv_title">Other improvements and additions for end-users</h2>
<figure id="attachment_5049" aria-describedby="caption-attachment-5049" style="width: 600px" class="wp-caption aligncenter"><a href="http://www.tannerhelland.com/4996/photodemon-60-preview/photodemon_batch_wizard_60/" rel="attachment wp-att-5049"><img data-attachment-id="5049" data-permalink="http://www.tannerhelland.com/4996/photodemon-60-preview/photodemon_batch_wizard_60/" data-orig-file="http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_Batch_Wizard_60.jpg" data-orig-size="1040,638" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="PhotoDemon_Batch_Wizard_60" data-image-description="" data-medium-file="http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_Batch_Wizard_60-300x184.jpg" data-large-file="http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_Batch_Wizard_60-600x368.jpg" src="http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_Batch_Wizard_60-600x368.jpg" alt="PhotoDemon&#039;s batch wizard now includes dedicated options for common batch operations, such as resizing.  The wizard has also been further streamlined to make batch processing as easy and quick as possible." width="600" height="368" class="size-large wp-image-5049" srcset="http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_Batch_Wizard_60-600x368.jpg 600w, http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_Batch_Wizard_60-300x184.jpg 300w, http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_Batch_Wizard_60-180x110.jpg 180w, http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_Batch_Wizard_60-50x30.jpg 50w, http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_Batch_Wizard_60-75x46.jpg 75w, http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_Batch_Wizard_60-900x552.jpg 900w, http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_Batch_Wizard_60-200x122.jpg 200w, http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_Batch_Wizard_60.jpg 1040w" sizes="(max-width: 600px) 100vw, 600px" /></a><figcaption id="caption-attachment-5049" class="wp-caption-text">PhotoDemon&#8217;s batch wizard now includes dedicated options for common batch operations, such as resizing.  The wizard has also been further streamlined to make batch processing as easy and quick as possible.</figcaption></figure>
<figure id="attachment_5050" aria-describedby="caption-attachment-5050" style="width: 484px" class="wp-caption aligncenter"><a href="http://www.tannerhelland.com/4996/photodemon-60-preview/photodemon_new_resize_tool/" rel="attachment wp-att-5050"><img data-attachment-id="5050" data-permalink="http://www.tannerhelland.com/4996/photodemon-60-preview/photodemon_new_resize_tool/" data-orig-file="http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_New_Resize_tool.jpg" data-orig-size="484,594" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="PhotoDemon_New_Resize_tool" data-image-description="" data-medium-file="http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_New_Resize_tool-244x300.jpg" data-large-file="http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_New_Resize_tool.jpg" src="http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_New_Resize_tool.jpg" alt="The Resize Tool has undergone a significant redesign.  Resampling options are now human-friendly, and several how-to-fit options are now provided when changing an image&#039;s aspect ratio.  This makes it possible to resize images to a new aspect ratio without unsightly distortion." width="484" height="594" class="size-full wp-image-5050" srcset="http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_New_Resize_tool.jpg 484w, http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_New_Resize_tool-244x300.jpg 244w, http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_New_Resize_tool-146x180.jpg 146w, http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_New_Resize_tool-40x50.jpg 40w, http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_New_Resize_tool-61x75.jpg 61w, http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_New_Resize_tool-162x200.jpg 162w" sizes="(max-width: 484px) 100vw, 484px" /></a><figcaption id="caption-attachment-5050" class="wp-caption-text">The Resize Tool has undergone a significant redesign.  Resampling options are now human-friendly, and several how-to-fit options are now provided when changing an image&#8217;s aspect ratio.  This makes it possible to resize images to a new aspect ratio without unsightly distortion.</figcaption></figure>
<figure id="attachment_5051" aria-describedby="caption-attachment-5051" style="width: 600px" class="wp-caption aligncenter"><a href="http://www.tannerhelland.com/4996/photodemon-60-preview/photodemon_remove_alpha_channel/" rel="attachment wp-att-5051"><img data-attachment-id="5051" data-permalink="http://www.tannerhelland.com/4996/photodemon-60-preview/photodemon_remove_alpha_channel/" data-orig-file="http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_Remove_Alpha_Channel.jpg" data-orig-size="804,470" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="PhotoDemon_Remove_Alpha_Channel" data-image-description="" data-medium-file="http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_Remove_Alpha_Channel-300x175.jpg" data-large-file="http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_Remove_Alpha_Channel-600x350.jpg" src="http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_Remove_Alpha_Channel-600x350.jpg" alt="When flattening an image with transparency (alpha channel), you can now select a background color.  Previously the software always defaulted to white." width="600" height="350" class="size-large wp-image-5051" srcset="http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_Remove_Alpha_Channel-600x350.jpg 600w, http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_Remove_Alpha_Channel-300x175.jpg 300w, http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_Remove_Alpha_Channel-180x105.jpg 180w, http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_Remove_Alpha_Channel-50x29.jpg 50w, http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_Remove_Alpha_Channel-75x43.jpg 75w, http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_Remove_Alpha_Channel-200x116.jpg 200w, http://www.tannerhelland.com/wp-content/uploads/PhotoDemon_Remove_Alpha_Channel.jpg 804w" sizes="(max-width: 600px) 100vw, 600px" /></a><figcaption id="caption-attachment-5051" class="wp-caption-text">When flattening an image with transparency (alpha channel), you can now select a background color.  Previously the software always defaulted to white.</figcaption></figure>
<ul>
<li>Transparent images can now be copied/pasted between PhotoDemon and other software.  This means you can take an image with multiple layers in GIMP and paste it into PhotoDemon fully composited.</li>
<li>Official RAW image format support; more than 20 RAW filetypes are now supported.</li>
<li>30-40% speed improvements to Gaussian Blur, Smart Blur, and Unsharp Masking thanks to an Integer-only rewrite of the blur engine.</li>
<li>Filters and other long-running actions can now be canceled mid-action by pressing ESC.</li>
<li>Revamped main window interface, as you can see in the screens above.  The left-hand toolbar is now images-only, while the right-hand one has been expanded.</li>
<li>Better validation for all text controls.  Invalid entries are automatically circled in red.</li>
<li>Alt+T will now let you switch between preview and non-preview modes in all tools.</li>
<li>Many miscellaneous bug fixes, optimizations, and other improvements.  For a full list, see the commit log at <a href="https://github.com/tannerhelland/PhotoDemon/commits/master">https://github.com/tannerhelland/PhotoDemon/commits/master</a></li>
</ul>
<h2 class="cv_title">Improvements and additions for developers and contributors</h2>
<ul>
<li>PhotoDemon can now provide timing reports for all actions passed through the central software processor.  Simply enable the DISPLAY_TIMINGS constant when compiling.</li>
<li>New custom slider/text and up/down controls make it easy to utilize PD&#8217;s existing validation and translation abilities in your own tool dialogs.</li>
<li>A new string-based filter parameter class makes it easy to tie complex tools with many parameters into the software processor (and thus into recorded macros).  No longer do you have to convert param lists to complex custom Variant embeddings.</li>
<li>PhotoDemon now includes a high-performance font rendering class, which makes custom font rendering (with AA) much easier to implement.</li>
<li>Dev builds, including build number, are now automatically detected by the program, making it easy to see which build you&#8217;re currently working with.</li>
<li>Support tools, including the custom plugin compressor and master translation file generator, are now synched to GitHub in the /Support subfolder.
</li>
<li>A public histogram-generation routine is now available, so you can tap into PhotoDemon&#8217;s highly optimized histogram generator for any of your own tools.</li>
</ul>
<h2 class="cv_title">Contributors, developers, and translators still welcome!</h2>
<p>As always, PhotoDemon can never have enough external contributors, developers, and translators.  If you can help with any aspect of the 6.0 release, don&#8217;t hesitate to <a href="http://www.tannerhelland.com/contact/">get in touch</a>.  Many features in the 6.0 release wouldn&#8217;t be possible without outside help, and I&#8217;d love to add you to the <a href="http://www.tannerhelland.com/photodemon/#acknowledgments">ever-growing list of talented contributors</a> that make PhotoDemon possible!</p>
<p>If you can&#8217;t contribute with coding or translations, <a href="http://www.tannerhelland.com/donate/">donations are another great way to help</a>.  Thanks in advance for your small monetary contribution to this completely open-source project, which provides a full-featured photo editor (comprising 60,000 lines of code and more than 50,000 words of translated text in five languages) completely free of charge.</p>
]]></content:encoded>
									<post-id xmlns="com-wordpress:feed-additions:1">4996</post-id>	</item>
		<item>
		<title>Where does Microsoft make money? (Updated 2013)</title>
		<link>http://www.tannerhelland.com/4993/microsoft-money-updated-2013/</link>
				<comments>http://www.tannerhelland.com/4993/microsoft-money-updated-2013/#comments</comments>
				<pubDate>Wed, 31 Jul 2013 15:42:37 +0000</pubDate>
		<dc:creator><![CDATA[Tanner]]></dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Current Events]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[Microsoft Office]]></category>
		<category><![CDATA[MS]]></category>
		<category><![CDATA[XBox 360]]></category>

		<guid isPermaLink="false">http://www.tannerhelland.com/?p=4993</guid>
				<description><![CDATA[It's that time of year again!  As before, all information in this report is taken from Microsoft's publicly available 2013 10-K filing. 2013 was a fascinating year for Microsoft, with the Windows division falling to 3rd place in profitability behind Business (Office) and Server/Tools...]]></description>
								<content:encoded><![CDATA[<p>(Past reports here: <a href="http://www.tannerhelland.com/4273/microsoft-money-updated-2012/">2012</a>, <a href="http://www.tannerhelland.com/3958/microsoft-money-updated-2011/">2011</a>, <a href="http://www.tannerhelland.com/2962/where-does-microsoft-make-its-money-2010/">2010</a>, <a href="http://www.tannerhelland.com/882/where-does-microsoft-make-its-money/">2009</a>)</p>
<h2 class="cv_title">Introduction</h2>
<p>As in past years, all information in this report is taken from <a href="http://www.microsoft.com/investor/SEC/default.aspx?year=2013">Microsoft&#8217;s publicly available 2013 10-K filing</a>. Numbers may vary from past reports. When Microsoft moves products between revenue categories, they retroactively adjust the totals for past years so that year-to-year comparisons are accurate. This article uses 2011 and 2012 values as calculated in the 2013 report. All values are in USD.</p>
<p>If you&#8217;ve read my past reports, feel free to skip down to the charts. If this is your first time here, let me provide a quick explanation of how Microsoft breaks down its earnings.</p>
<h2 class="cv_title">Microsoft 2013 earnings tl;dr (&#8220;too long, didn&#8217;t read&#8221;)</h2>
<ul>
<li>Microsoft remained highly profitable in 2013, with solid year-over-year growth in both revenue and operating income.</li>
<li>The Business (Office) division brings in significantly more money than the Windows division (+30% revenue, +70% profit).  In fact, nearly half of Microsoft&#8217;s 2013 profits came from the Business division alone.</li>
<li>For the first time ever (to my knowledge), the Windows division was actually 3rd in revenue in 2013, behind both Business and Server/Tools.  If trends from the past four years continue in 2014, Server and Tools will pass Windows in not just revenue, but profitability as well.</li>
<li>Regardless of division, the vast majority of Microsoft&#8217;s profits come from business and OEM sales.  Consumer-centric divisions (including XBox, Windows Phone, Bing) are largely irrelevant from a profit standpoint.</li>
<li>Just for fun: in 2012, Apple pulled in <strong>double</strong> the revenue of Microsoft ($156 billion USD and $74 billion, respectively).  <a href="http://www.marketwatch.com/investing/stock/AAPL/financials">Source 1</a>, <a href="http://www.marketwatch.com/investing/stock/MSFT/financials">Source 2</a>.</li>
</ul>
<h2 class="cv_title">Overview</h2>
<p>Microsoft is unique among tech companies for reporting detailed information by product line.  Their competitors do not provide such a detailed breakdown; Apple, most notably, is organized around <a href="http://tech.fortune.cnn.com/2011/08/25/how-apple-works-inside-the-worlds-biggest-startup/">&#8220;functional&#8221; divisions rather than &#8220;product&#8221; divisions</a>, making direct financial comparisons between Apple product lines and Microsoft product lines difficult.</p>
<p>This year, Microsoft announced a company-wide reorganization plan that would bring them closer to Apple&#8217;s structure.  Many (myself included) <a href="http://www.zdnet.com/history-lesson-apple-vs-microsoft-reorganizations-7000018045/">have doubts about this resulting in meaningful changes to Microsoft&#8217;s overall structure and performance</a>, but there is one area the reorganization is almost certain to impact: financial reporting.  Sadly, this means that 2013 may be the last year I am able to provide detailed earnings charts by product division.</p>
<p>There are many theoretical benefits to organizing a company by &#8220;function&#8221; instead of &#8220;products.&#8221;  One benefit is reduced infighting between product groups, <a href="http://www.nytimes.com/2010/02/04/opinion/04brass.html?pagewanted=1&#038;ref=opinion&#038;_r=0">a known problem for Microsoft</a>.  Another benefit is the ability to hide losses due to underperforming products.  Microsoft had its share of those in the past year, most notably its <a href="http://www.pcadvisor.co.uk/news/mobile-phone/3459614/surface-rt-tanks-microsofts-earnings/">billion-dollar loss on the Surface RT line of tablets</a>, the impact of which can be seen in the charts below.</p>
<h2 class="cv_title">Microsoft Total Revenue and Operating Income (June 2012 &#8211; June 2013)</h2>
<p>Total Revenue: $77,849,000,000<br />
Operating Income: $26,764,000,000</p>
<figure id="attachment_5002" aria-describedby="caption-attachment-5002" style="width: 682px" class="wp-caption aligncenter"><a href="http://www.tannerhelland.com/4993/microsoft-money-updated-2013/ms_2013_total_earnings/" rel="attachment wp-att-5002"><img data-attachment-id="5002" data-permalink="http://www.tannerhelland.com/4993/microsoft-money-updated-2013/ms_2013_total_earnings/" data-orig-file="http://www.tannerhelland.com/wp-content/uploads/MS_2013_total_earnings.png" data-orig-size="682,351" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="MS_2013_total_earnings" data-image-description="" data-medium-file="http://www.tannerhelland.com/wp-content/uploads/MS_2013_total_earnings-300x154.png" data-large-file="http://www.tannerhelland.com/wp-content/uploads/MS_2013_total_earnings-600x308.png" src="http://www.tannerhelland.com/wp-content/uploads/MS_2013_total_earnings.png" alt="Long story short: for all their failings, Microsoft remains hugely profitable." width="682" height="351" class="size-full wp-image-5002" title="Microsoft total earnings 2013" srcset="http://www.tannerhelland.com/wp-content/uploads/MS_2013_total_earnings.png 682w, http://www.tannerhelland.com/wp-content/uploads/MS_2013_total_earnings-300x154.png 300w, http://www.tannerhelland.com/wp-content/uploads/MS_2013_total_earnings-600x308.png 600w, http://www.tannerhelland.com/wp-content/uploads/MS_2013_total_earnings-180x92.png 180w, http://www.tannerhelland.com/wp-content/uploads/MS_2013_total_earnings-50x25.png 50w, http://www.tannerhelland.com/wp-content/uploads/MS_2013_total_earnings-75x38.png 75w, http://www.tannerhelland.com/wp-content/uploads/MS_2013_total_earnings-200x102.png 200w" sizes="(max-width: 682px) 100vw, 682px" /></a><figcaption id="caption-attachment-5002" class="wp-caption-text">Long story short: despite some big missteps in 2013, Microsoft remains very profitable.</figcaption></figure>
<p>Total Revenue is the total amount of money Microsoft takes in from normal business operations.  </p>
<p>Operating Income is calculated as &#8220;Operating Revenue – Operating Expenses&#8221;. In other words, Operating Income is the <strong>profit</strong> made from normal business operations. (A more detailed definition is available from Investopedia: “Operating income would not include items such as investments in other firms, taxes or interest expenses. In addition, nonrecurring items such as cash paid for a lawsuit settlement are often not included. Operating income is required to calculate operating margin, which describes a company’s operating efficiency.”)</p>
<p>Operating Income is particularly important when looking at a company like Microsoft. Certain Microsoft divisions take in a great deal of money, but they also require much higher costs to operate. Thus it is relevant to look at not just how much money a certain division brings in, but at how efficiently that division generates its revenue.</p>
<h2 class="cv_title">Microsoft Revenue and Operating Income by Division (June 2012 – 2013)</h2>
<p>Microsoft products (and earnings) are divided into five divisions: Windows, Microsoft Business, Server and Tools, Entertainment and Devices, and Online Services. The types of products and services provided by each segment are as follows.</p>
<ul>
<li><strong>Windows</strong> – Windows operating system, Windows-related web services (including Outlook.com and SkyDrive), Surface RT and Pro devices, and Microsoft PC hardware products.  <a href="http://www.microsoft.com/investor/SEC/default.aspx?year=2013">65% of Windows Division revenue comes from OEM sales of Windows.</a></li>
<li><strong>Microsoft Business</strong> – Microsoft Office (including Office Web Apps and Office 365), Microsoft Exchange, Microsoft SharePoint, Microsoft Lync, Yammer (newly acquired in 2012), Microsoft Office Project and Office Visio, and Microsoft Dynamics ERP and CRM.  As you&#8217;d expect, <a href="http://www.microsoft.com/investor/SEC/default.aspx?year=2013">85% of Microsoft Business revenue comes from businesses</a>.</li>
<li><strong>Server and Tools</strong> – Windows Server operating system, Windows Azure, Microsoft SQL Server, Windows Intune, Windows Embedded, Visual Studio, System Center products, Microsoft Consulting Services, and Premier product support services.  <a href="http://www.microsoft.com/investor/SEC/default.aspx?year=2013">80% of Server and Tools revenue comes from direct product sales via volume licensing, OEMs, and retail packaged products</a>.</li>
<li><strong>Entertainment and Devices</strong> – Xbox 360 console, games, and accessories (<em>e.g.</em> Kinect), Xbox LIVE, Windows Phone, and Skype.</li>
<li><strong>Online Services </strong>– Bing, Bing Ads, and MSN.</li>
</ul>
<p><em>(Note: these divisions are pretty much identical to 2012, with the exception of Microsoft&#8217;s $1.2 billion purchase of Yammer and its corresponding addition to the Microsoft Business division.)</em></p>
<p>Here are the 2012-2013 revenue and operating income values for each division, in USD. Note that the number in parentheses is the percentage change between 2012 and 2013.</p>
<p><strong>Windows (including Surface tablets and other hardware)</strong><br />
Revenue: $19,239,000,000 <span style="color: #393;">(+5%)</span><br />
Operating Income: $9,504,000,000 <span style="color: #f00;">(-18%)</span></p>
<p><strong>Business (Office, Exchange, SharePoint)</strong><br />
Revenue: $24,724,000,000 <span style="color: #393;">(+3%)</span><br />
Operating income: $16,194,000,000 <span style="color: #393;">(+2%)</span></p>
<p><strong>Server and Tools (Windows Server, Microsoft SQL, Visual Studio)</strong><br />
Revenue: $20,281,000,000 <span style="color: #393;">(+9%)</span><br />
Operating Income: $8,164,000,000 <span style="color: #393;">(+13%)</span></p>
<p><strong>Entertainment and Devices (XBox 360/LIVE, Windows Phone)</strong><br />
Revenue: $10,165,000,000 <span style="color: #393;">(+6%)</span><br />
Operating income: $848,000,000 <span style="color: #393;">(+120%)</span></p>
<p><strong>Online Services (Bing, MSN, Hotmail)</strong><br />
Revenue: $3,201,000,000 <span style="color: #393;">(+12%)</span><br />
Operating income: $-1,281,000,000 <span style="color: #f00;">(*)</span></p>
<p><em>(* &#8211; Microsoft had an <a href="http://www.tannerhelland.com/4273/microsoft-money-updated-2012/">artificially huge loss in the Online Services division in 2012</a>, due to a one-time goodwill impairment charge of $6.2 billion.  This makes year-to-year comparisons meaningless.)</em></p>
<hr />
<h2 class="cv_title">Microsoft Total Revenue &#8211; 2013</h2>
<figure id="attachment_5003" aria-describedby="caption-attachment-5003" style="width: 685px" class="wp-caption aligncenter"><a href="http://www.tannerhelland.com/4993/microsoft-money-updated-2013/ms_2013_revbydivision_usd/" rel="attachment wp-att-5006"><img data-attachment-id="5006" data-permalink="http://www.tannerhelland.com/4993/microsoft-money-updated-2013/ms_2013_revbydivision_usd/" data-orig-file="http://www.tannerhelland.com/wp-content/uploads/MS_2013_revbydivision_USD.png" data-orig-size="685,434" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="MS_2013_revbydivision_USD" data-image-description="" data-medium-file="http://www.tannerhelland.com/wp-content/uploads/MS_2013_revbydivision_USD-300x190.png" data-large-file="http://www.tannerhelland.com/wp-content/uploads/MS_2013_revbydivision_USD-600x380.png" src="http://www.tannerhelland.com/wp-content/uploads/MS_2013_revbydivision_USD.png" alt="MS_2013_revbydivision_USD" width="685" height="434" class="aligncenter size-full wp-image-5006" srcset="http://www.tannerhelland.com/wp-content/uploads/MS_2013_revbydivision_USD.png 685w, http://www.tannerhelland.com/wp-content/uploads/MS_2013_revbydivision_USD-300x190.png 300w, http://www.tannerhelland.com/wp-content/uploads/MS_2013_revbydivision_USD-600x380.png 600w, http://www.tannerhelland.com/wp-content/uploads/MS_2013_revbydivision_USD-180x114.png 180w, http://www.tannerhelland.com/wp-content/uploads/MS_2013_revbydivision_USD-50x31.png 50w, http://www.tannerhelland.com/wp-content/uploads/MS_2013_revbydivision_USD-75x47.png 75w, http://www.tannerhelland.com/wp-content/uploads/MS_2013_revbydivision_USD-200x126.png 200w" sizes="(max-width: 685px) 100vw, 685px" /></a><figcaption id="caption-attachment-5003" class="wp-caption-text">Microsoft total revenue in 2013, in USD.</figcaption></figure>
<p>&nbsp;</p>
<figure id="attachment_5003" aria-describedby="caption-attachment-5003" style="width: 685px" class="wp-caption aligncenter"><a href="http://www.tannerhelland.com/4993/microsoft-money-updated-2013/ms_2013_revbydivision_percent/" rel="attachment wp-att-5004"><img data-attachment-id="5004" data-permalink="http://www.tannerhelland.com/4993/microsoft-money-updated-2013/ms_2013_revbydivision_percent/" data-orig-file="http://www.tannerhelland.com/wp-content/uploads/MS_2013_revbydivision_percent.png" data-orig-size="685,432" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="MS_2013_revbydivision_percent" data-image-description="" data-medium-file="http://www.tannerhelland.com/wp-content/uploads/MS_2013_revbydivision_percent-300x189.png" data-large-file="http://www.tannerhelland.com/wp-content/uploads/MS_2013_revbydivision_percent-600x378.png" src="http://www.tannerhelland.com/wp-content/uploads/MS_2013_revbydivision_percent.png" alt="MS_2013_revbydivision_percent" width="685" height="432" class="aligncenter size-full wp-image-5004" srcset="http://www.tannerhelland.com/wp-content/uploads/MS_2013_revbydivision_percent.png 685w, http://www.tannerhelland.com/wp-content/uploads/MS_2013_revbydivision_percent-300x189.png 300w, http://www.tannerhelland.com/wp-content/uploads/MS_2013_revbydivision_percent-600x378.png 600w, http://www.tannerhelland.com/wp-content/uploads/MS_2013_revbydivision_percent-180x113.png 180w, http://www.tannerhelland.com/wp-content/uploads/MS_2013_revbydivision_percent-50x31.png 50w, http://www.tannerhelland.com/wp-content/uploads/MS_2013_revbydivision_percent-75x47.png 75w, http://www.tannerhelland.com/wp-content/uploads/MS_2013_revbydivision_percent-200x126.png 200w" sizes="(max-width: 685px) 100vw, 685px" /></a><figcaption id="caption-attachment-5003" class="wp-caption-text">Same chart as above, but with percentages.</figcaption></figure>
<h2 class="cv_title">Microsoft Operating Income &#8211; 2013</h2>
<figure id="attachment_5008" aria-describedby="caption-attachment-5008" style="width: 685px" class="wp-caption aligncenter"><a href="http://www.tannerhelland.com/4993/microsoft-money-updated-2013/ms_2013_operatingincome_usd/" rel="attachment wp-att-5008"><img data-attachment-id="5008" data-permalink="http://www.tannerhelland.com/4993/microsoft-money-updated-2013/ms_2013_operatingincome_usd/" data-orig-file="http://www.tannerhelland.com/wp-content/uploads/MS_2013_operatingincome_USD.png" data-orig-size="685,434" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="MS_2013_operatingincome_USD" data-image-description="" data-medium-file="http://www.tannerhelland.com/wp-content/uploads/MS_2013_operatingincome_USD-300x190.png" data-large-file="http://www.tannerhelland.com/wp-content/uploads/MS_2013_operatingincome_USD-600x380.png" src="http://www.tannerhelland.com/wp-content/uploads/MS_2013_operatingincome_USD.png" alt="Microsoft operating income, by division, for 2013. (Amounts in millions USD.) Note that Online Services represents a $1.2 billion dollar LOSS." width="685" height="434" class="size-full wp-image-5008" srcset="http://www.tannerhelland.com/wp-content/uploads/MS_2013_operatingincome_USD.png 685w, http://www.tannerhelland.com/wp-content/uploads/MS_2013_operatingincome_USD-300x190.png 300w, http://www.tannerhelland.com/wp-content/uploads/MS_2013_operatingincome_USD-600x380.png 600w, http://www.tannerhelland.com/wp-content/uploads/MS_2013_operatingincome_USD-180x114.png 180w, http://www.tannerhelland.com/wp-content/uploads/MS_2013_operatingincome_USD-50x31.png 50w, http://www.tannerhelland.com/wp-content/uploads/MS_2013_operatingincome_USD-75x47.png 75w, http://www.tannerhelland.com/wp-content/uploads/MS_2013_operatingincome_USD-200x126.png 200w" sizes="(max-width: 685px) 100vw, 685px" /></a><figcaption id="caption-attachment-5008" class="wp-caption-text">Microsoft operating income, by division, for 2013. (Amounts in millions USD.) Note that Online Services represents a $1.2 billion dollar LOSS.</figcaption></figure>
<h2 class="cv_title">Year-over-year comparisons (2010-2013)</h2>
<figure id="attachment_5009" aria-describedby="caption-attachment-5009" style="width: 673px" class="wp-caption aligncenter"><a href="http://www.tannerhelland.com/4993/microsoft-money-updated-2013/ms_2010_2013_revbydivision_usd/" rel="attachment wp-att-5009"><img data-attachment-id="5009" data-permalink="http://www.tannerhelland.com/4993/microsoft-money-updated-2013/ms_2010_2013_revbydivision_usd/" data-orig-file="http://www.tannerhelland.com/wp-content/uploads/MS_2010_2013_revbydivision_USD.png" data-orig-size="673,432" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="MS_2010_2013_revbydivision_USD" data-image-description="" data-medium-file="http://www.tannerhelland.com/wp-content/uploads/MS_2010_2013_revbydivision_USD-300x192.png" data-large-file="http://www.tannerhelland.com/wp-content/uploads/MS_2010_2013_revbydivision_USD-600x385.png" src="http://www.tannerhelland.com/wp-content/uploads/MS_2010_2013_revbydivision_USD.png" alt="Microsoft revenue by division for the years 2010-2013. Overall revenue continues to trend upward, despite flat Windows sales.  Note that as of 2013, both Office and Server/Tools brought in more money than Windows." width="673" height="432" class="size-full wp-image-5009" srcset="http://www.tannerhelland.com/wp-content/uploads/MS_2010_2013_revbydivision_USD.png 673w, http://www.tannerhelland.com/wp-content/uploads/MS_2010_2013_revbydivision_USD-300x192.png 300w, http://www.tannerhelland.com/wp-content/uploads/MS_2010_2013_revbydivision_USD-600x385.png 600w, http://www.tannerhelland.com/wp-content/uploads/MS_2010_2013_revbydivision_USD-180x115.png 180w, http://www.tannerhelland.com/wp-content/uploads/MS_2010_2013_revbydivision_USD-50x32.png 50w, http://www.tannerhelland.com/wp-content/uploads/MS_2010_2013_revbydivision_USD-75x48.png 75w, http://www.tannerhelland.com/wp-content/uploads/MS_2010_2013_revbydivision_USD-200x128.png 200w" sizes="(max-width: 673px) 100vw, 673px" /></a><figcaption id="caption-attachment-5009" class="wp-caption-text">Microsoft revenue by division for the years 2010-2013. Overall revenue continues to trend upward, despite flat Windows sales.  Note that as of 2013, both Office and Server/Tools brought in more money than Windows.</figcaption></figure>
<p>&nbsp;</p>
<figure id="attachment_5010" aria-describedby="caption-attachment-5010" style="width: 740px" class="wp-caption aligncenter"><a href="http://www.tannerhelland.com/4993/microsoft-money-updated-2013/ms_2010_2013_oibydivision_usd/" rel="attachment wp-att-5010"><img data-attachment-id="5010" data-permalink="http://www.tannerhelland.com/4993/microsoft-money-updated-2013/ms_2010_2013_oibydivision_usd/" data-orig-file="http://www.tannerhelland.com/wp-content/uploads/MS_2010_2013_oibydivision_USD.png" data-orig-size="740,469" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="MS_2010_2013_oibydivision_USD" data-image-description="" data-medium-file="http://www.tannerhelland.com/wp-content/uploads/MS_2010_2013_oibydivision_USD-300x190.png" data-large-file="http://www.tannerhelland.com/wp-content/uploads/MS_2010_2013_oibydivision_USD-600x380.png" src="http://www.tannerhelland.com/wp-content/uploads/MS_2010_2013_oibydivision_USD.png" alt="Microsoft operating income by division for the years 2010-2013. Unlike revenue, operating income varies dramatically from year to year. Microsoft Business has now dominated profits for three straight years, and if trends continue, Server and Tools will surpass Windows in profitability next year.  Note also how irrelevant XBox and Windows Phone (E&amp;D) are from a profit standpoint." width="740" height="469" class="size-full wp-image-5010" srcset="http://www.tannerhelland.com/wp-content/uploads/MS_2010_2013_oibydivision_USD.png 740w, http://www.tannerhelland.com/wp-content/uploads/MS_2010_2013_oibydivision_USD-300x190.png 300w, http://www.tannerhelland.com/wp-content/uploads/MS_2010_2013_oibydivision_USD-600x380.png 600w, http://www.tannerhelland.com/wp-content/uploads/MS_2010_2013_oibydivision_USD-180x114.png 180w, http://www.tannerhelland.com/wp-content/uploads/MS_2010_2013_oibydivision_USD-50x31.png 50w, http://www.tannerhelland.com/wp-content/uploads/MS_2010_2013_oibydivision_USD-75x47.png 75w, http://www.tannerhelland.com/wp-content/uploads/MS_2010_2013_oibydivision_USD-200x126.png 200w" sizes="(max-width: 740px) 100vw, 740px" /></a><figcaption id="caption-attachment-5010" class="wp-caption-text">Microsoft operating income by division for the years 2010-2013. Microsoft Business has now dominated profits for three straight years, and if trends continue, Server and Tools will surpass Windows in profitability next year.  Note also how irrelevant XBox and Windows Phone (E&#038;D) are from a profit standpoint.</figcaption></figure>
]]></content:encoded>
							<wfw:commentRss>http://www.tannerhelland.com/4993/microsoft-money-updated-2013/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
						<post-id xmlns="com-wordpress:feed-additions:1">4993</post-id>	</item>
	</channel>
</rss>
