<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0"><channel><title>Nannette Thacker ShiningStar.net</title><link>http://weblogs.asp.net/nannettethacker/default.aspx</link><description>&lt;a href="http://weblogs.asp.net/nannettethacker/pages/senior-web-application-developer-consultant.aspx"&gt;ASP.net Web Application Development&lt;/a&gt;</description><dc:language>en</dc:language><generator>CommunityServer 2007 SP1 (Build: 20510.895)</generator><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/NannetteThackerShiningstarnet" type="application/rss+xml" /><item><title>Programmatic Menus: Optimize Your Menus in Code-behind</title><link>http://feedproxy.google.com/~r/NannetteThackerShiningstarnet/~3/gQiuM2Dax-I/programmatic-menus-optimize-your-menus-in-code-behind.aspx</link><pubDate>Wed, 03 Jun 2009 22:10:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:7107480</guid><dc:creator>nannette</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://weblogs.asp.net/nannettethacker/rsscomments.aspx?PostID=7107480</wfw:commentRss><wfw:comment>http://weblogs.asp.net/nannettethacker/commentapi.aspx?PostID=7107480</wfw:comment><comments>http://weblogs.asp.net/nannettethacker/archive/2009/06/03/programmatic-menus-optimize-your-menus-in-code-behind.aspx#comments</comments><description>In this article, I want to show how you can setup your menus in code-behind and avoid redundancy. I recently inherited a web application with the menu system setup in the code-in-front. Each menu shared identical values, other than the visibility. Notice...(&lt;a href="http://weblogs.asp.net/nannettethacker/archive/2009/06/03/programmatic-menus-optimize-your-menus-in-code-behind.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=7107480" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/NannetteThackerShiningstarnet/~4/gQiuM2Dax-I" height="1" width="1"/&gt;</description><category domain="http://weblogs.asp.net/nannettethacker/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://weblogs.asp.net/nannettethacker/archive/tags/General+Software+Development/default.aspx">General Software Development</category><category domain="http://weblogs.asp.net/nannettethacker/archive/tags/Web+Forms/default.aspx">Web Forms</category><category domain="http://weblogs.asp.net/nannettethacker/archive/tags/ASP.NET+Web+Application+Development/default.aspx">ASP.NET Web Application Development</category><category domain="http://weblogs.asp.net/nannettethacker/archive/tags/VB.NET/default.aspx">VB.NET</category><feedburner:origLink>http://weblogs.asp.net/nannettethacker/archive/2009/06/03/programmatic-menus-optimize-your-menus-in-code-behind.aspx</feedburner:origLink></item><item><title>Storing and Retrieving Objects from View State - The Serializable Attribute</title><link>http://feedproxy.google.com/~r/NannetteThackerShiningstarnet/~3/7zg0pcqdsqg/storing-and-retrieving-objects-from-view-state.aspx</link><pubDate>Tue, 10 Mar 2009 12:22:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6952312</guid><dc:creator>nannette</dc:creator><slash:comments>2</slash:comments><wfw:commentRss>http://weblogs.asp.net/nannettethacker/rsscomments.aspx?PostID=6952312</wfw:commentRss><wfw:comment>http://weblogs.asp.net/nannettethacker/commentapi.aspx?PostID=6952312</wfw:comment><comments>http://weblogs.asp.net/nannettethacker/archive/2009/03/10/storing-and-retrieving-objects-from-view-state.aspx#comments</comments><description>View State allows you to retain page property values, such as string and numeric types, between postbacks. You may also store class objects in View State, but you must first add the Serializable attribute. If you do not add the Serializable attribute...(&lt;a href="http://weblogs.asp.net/nannettethacker/archive/2009/03/10/storing-and-retrieving-objects-from-view-state.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6952312" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/NannetteThackerShiningstarnet/~4/7zg0pcqdsqg" height="1" width="1"/&gt;</description><category domain="http://weblogs.asp.net/nannettethacker/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://weblogs.asp.net/nannettethacker/archive/tags/General+Software+Development/default.aspx">General Software Development</category><feedburner:origLink>http://weblogs.asp.net/nannettethacker/archive/2009/03/10/storing-and-retrieving-objects-from-view-state.aspx</feedburner:origLink></item><item><title>Filtering Parameters in a SQL 2008 Stored Procedure</title><link>http://feedproxy.google.com/~r/NannetteThackerShiningstarnet/~3/tYypi_jRhGg/filtering-parameters-in-a-sql-2008-stored-procedure.aspx</link><pubDate>Thu, 05 Mar 2009 16:09:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6938711</guid><dc:creator>nannette</dc:creator><slash:comments>2</slash:comments><wfw:commentRss>http://weblogs.asp.net/nannettethacker/rsscomments.aspx?PostID=6938711</wfw:commentRss><wfw:comment>http://weblogs.asp.net/nannettethacker/commentapi.aspx?PostID=6938711</wfw:comment><comments>http://weblogs.asp.net/nannettethacker/archive/2009/03/05/filtering-parameters-in-a-sql-2008-stored-procedure.aspx#comments</comments><description>Ash explains the concept of Filtering Parameters in a Stored Procedure in this blog post. This method is safer and more beneficial than dynamically creating and passing a sql query from the code layer and using sp_executesql, as it helps to avoid sql...(&lt;a href="http://weblogs.asp.net/nannettethacker/archive/2009/03/05/filtering-parameters-in-a-sql-2008-stored-procedure.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6938711" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/NannetteThackerShiningstarnet/~4/tYypi_jRhGg" height="1" width="1"/&gt;</description><category domain="http://weblogs.asp.net/nannettethacker/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://weblogs.asp.net/nannettethacker/archive/tags/SQL+Server/default.aspx">SQL Server</category><category domain="http://weblogs.asp.net/nannettethacker/archive/tags/General+Software+Development/default.aspx">General Software Development</category><category domain="http://weblogs.asp.net/nannettethacker/archive/tags/SQLServer2008/default.aspx">SQLServer2008</category><feedburner:origLink>http://weblogs.asp.net/nannettethacker/archive/2009/03/05/filtering-parameters-in-a-sql-2008-stored-procedure.aspx</feedburner:origLink></item><item><title>Using Icons in Web Design</title><link>http://feedproxy.google.com/~r/NannetteThackerShiningstarnet/~3/kYb5fEtiwLs/using-icons-in-web-design.aspx</link><pubDate>Thu, 05 Mar 2009 00:25:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6937841</guid><dc:creator>nannette</dc:creator><slash:comments>2</slash:comments><wfw:commentRss>http://weblogs.asp.net/nannettethacker/rsscomments.aspx?PostID=6937841</wfw:commentRss><wfw:comment>http://weblogs.asp.net/nannettethacker/commentapi.aspx?PostID=6937841</wfw:comment><comments>http://weblogs.asp.net/nannettethacker/archive/2009/03/04/using-icons-in-web-design.aspx#comments</comments><description>Nathan Barry posted a new article on How To Use Icons To Support Content In Web Design . Besides his design insights, he also provides images that depict actual live website examples and links to those sites. His tips include How to Use Icons, Purpose...(&lt;a href="http://weblogs.asp.net/nannettethacker/archive/2009/03/04/using-icons-in-web-design.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6937841" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/NannetteThackerShiningstarnet/~4/kYb5fEtiwLs" height="1" width="1"/&gt;</description><category domain="http://weblogs.asp.net/nannettethacker/archive/tags/General+Software+Development/default.aspx">General Software Development</category><category domain="http://weblogs.asp.net/nannettethacker/archive/tags/Web+Design/default.aspx">Web Design</category><feedburner:origLink>http://weblogs.asp.net/nannettethacker/archive/2009/03/04/using-icons-in-web-design.aspx</feedburner:origLink></item><item><title>Kudos to Telerik Support!</title><link>http://feedproxy.google.com/~r/NannetteThackerShiningstarnet/~3/ltzUM7HRTGY/kudos-to-telerik-support.aspx</link><pubDate>Fri, 27 Feb 2009 17:33:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6931078</guid><dc:creator>nannette</dc:creator><slash:comments>1</slash:comments><wfw:commentRss>http://weblogs.asp.net/nannettethacker/rsscomments.aspx?PostID=6931078</wfw:commentRss><wfw:comment>http://weblogs.asp.net/nannettethacker/commentapi.aspx?PostID=6931078</wfw:comment><comments>http://weblogs.asp.net/nannettethacker/archive/2009/02/27/kudos-to-telerik-support.aspx#comments</comments><description>I have been using Telerik controls for about a year now. First, on a client site project, and then I licensed it for my own development needs as a consultant. I have to say I am tickled with the Telerik support. 1) Telerik forums are great. Ask a question...(&lt;a href="http://weblogs.asp.net/nannettethacker/archive/2009/02/27/kudos-to-telerik-support.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6931078" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/NannetteThackerShiningstarnet/~4/ltzUM7HRTGY" height="1" width="1"/&gt;</description><category domain="http://weblogs.asp.net/nannettethacker/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://weblogs.asp.net/nannettethacker/archive/tags/General+Software+Development/default.aspx">General Software Development</category><feedburner:origLink>http://weblogs.asp.net/nannettethacker/archive/2009/02/27/kudos-to-telerik-support.aspx</feedburner:origLink></item><item><title>VB.NET to C# Conversion Hints, Tips and Gotchas</title><link>http://feedproxy.google.com/~r/NannetteThackerShiningstarnet/~3/KpbSBfoj86Y/vb-net-to-c-conversion-hints-tips-and-gotchas.aspx</link><pubDate>Wed, 11 Feb 2009 16:36:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6897729</guid><dc:creator>nannette</dc:creator><slash:comments>2</slash:comments><wfw:commentRss>http://weblogs.asp.net/nannettethacker/rsscomments.aspx?PostID=6897729</wfw:commentRss><wfw:comment>http://weblogs.asp.net/nannettethacker/commentapi.aspx?PostID=6897729</wfw:comment><comments>http://weblogs.asp.net/nannettethacker/archive/2009/02/11/vb-net-to-c-conversion-hints-tips-and-gotchas.aspx#comments</comments><description>If you're a VB.NET developer learning C# or converting your VB code to C#, here are a few hints, tips and gotchas. But first, let me share a few important links with you: VB.NET and C# Comparison - This is one of the most accurate and complete charts...(&lt;a href="http://weblogs.asp.net/nannettethacker/archive/2009/02/11/vb-net-to-c-conversion-hints-tips-and-gotchas.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6897729" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/NannetteThackerShiningstarnet/~4/KpbSBfoj86Y" height="1" width="1"/&gt;</description><category domain="http://weblogs.asp.net/nannettethacker/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://weblogs.asp.net/nannettethacker/archive/tags/General+Software+Development/default.aspx">General Software Development</category><category domain="http://weblogs.asp.net/nannettethacker/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://weblogs.asp.net/nannettethacker/archive/tags/VB.NET/default.aspx">VB.NET</category><feedburner:origLink>http://weblogs.asp.net/nannettethacker/archive/2009/02/11/vb-net-to-c-conversion-hints-tips-and-gotchas.aspx</feedburner:origLink></item><item><title>SQL Server 2008 Web Edition and Express Edition Errors Resolved</title><link>http://feedproxy.google.com/~r/NannetteThackerShiningstarnet/~3/qbLVrNufSIM/failed-to-generate-a-user-instance-of-sql-server-due-to-a-failure-in-starting-the-process.aspx</link><pubDate>Sun, 01 Feb 2009 20:03:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6873135</guid><dc:creator>nannette</dc:creator><slash:comments>2</slash:comments><wfw:commentRss>http://weblogs.asp.net/nannettethacker/rsscomments.aspx?PostID=6873135</wfw:commentRss><wfw:comment>http://weblogs.asp.net/nannettethacker/commentapi.aspx?PostID=6873135</wfw:comment><comments>http://weblogs.asp.net/nannettethacker/archive/2009/02/01/failed-to-generate-a-user-instance-of-sql-server-due-to-a-failure-in-starting-the-process.aspx#comments</comments><description>Since I had purchased the SQL Server 2008 Web Edition for my database server, I decided to also install it on my development box. But when I tried to install the Management Tools, it errored with: "Previous release of Microsoft Visual Studio 2008." I...(&lt;a href="http://weblogs.asp.net/nannettethacker/archive/2009/02/01/failed-to-generate-a-user-instance-of-sql-server-due-to-a-failure-in-starting-the-process.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6873135" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/NannetteThackerShiningstarnet/~4/qbLVrNufSIM" height="1" width="1"/&gt;</description><category domain="http://weblogs.asp.net/nannettethacker/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://weblogs.asp.net/nannettethacker/archive/tags/SQL+Server/default.aspx">SQL Server</category><category domain="http://weblogs.asp.net/nannettethacker/archive/tags/General+Software+Development/default.aspx">General Software Development</category><category domain="http://weblogs.asp.net/nannettethacker/archive/tags/Visual+Studio+2008/default.aspx">Visual Studio 2008</category><category domain="http://weblogs.asp.net/nannettethacker/archive/tags/SQLServer2008/default.aspx">SQLServer2008</category><feedburner:origLink>http://weblogs.asp.net/nannettethacker/archive/2009/02/01/failed-to-generate-a-user-instance-of-sql-server-due-to-a-failure-in-starting-the-process.aspx</feedburner:origLink></item><item><title>Attributes.Add: Adding Javascript Click Events Programmatically in Code-Behind</title><link>http://feedproxy.google.com/~r/NannetteThackerShiningstarnet/~3/HsCD8-tJQU4/adding-javascript-click-events-programmatically-in-code-behind-using-attributes-add.aspx</link><pubDate>Thu, 29 Jan 2009 15:01:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6867746</guid><dc:creator>nannette</dc:creator><slash:comments>8</slash:comments><wfw:commentRss>http://weblogs.asp.net/nannettethacker/rsscomments.aspx?PostID=6867746</wfw:commentRss><wfw:comment>http://weblogs.asp.net/nannettethacker/commentapi.aspx?PostID=6867746</wfw:comment><comments>http://weblogs.asp.net/nannettethacker/archive/2009/01/29/adding-javascript-click-events-programmatically-in-code-behind-using-attributes-add.aspx#comments</comments><description>I'm going to demonstrate how to add javascript events programmatically in codebehind using the Attributes.Add method. You may want to add your javascript attributes programmatically so that you can populate the values from a database. For demonstration...(&lt;a href="http://weblogs.asp.net/nannettethacker/archive/2009/01/29/adding-javascript-click-events-programmatically-in-code-behind-using-attributes-add.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6867746" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/NannetteThackerShiningstarnet/~4/HsCD8-tJQU4" height="1" width="1"/&gt;</description><category domain="http://weblogs.asp.net/nannettethacker/archive/tags/General+Software+Development/default.aspx">General Software Development</category><category domain="http://weblogs.asp.net/nannettethacker/archive/tags/ASP.NET+Web+Application+Development/default.aspx">ASP.NET Web Application Development</category><category domain="http://weblogs.asp.net/nannettethacker/archive/tags/Javascript/default.aspx">Javascript</category><feedburner:origLink>http://weblogs.asp.net/nannettethacker/archive/2009/01/29/adding-javascript-click-events-programmatically-in-code-behind-using-attributes-add.aspx</feedburner:origLink></item><item><title>Employers Should Promote Fitness Because Fit Programmers Program Better</title><link>http://feedproxy.google.com/~r/NannetteThackerShiningstarnet/~3/wWmqDuzffLM/employers-should-promote-fitness-because-fit-programmers-program-better.aspx</link><pubDate>Wed, 28 Jan 2009 19:45:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6867097</guid><dc:creator>nannette</dc:creator><slash:comments>10</slash:comments><wfw:commentRss>http://weblogs.asp.net/nannettethacker/rsscomments.aspx?PostID=6867097</wfw:commentRss><wfw:comment>http://weblogs.asp.net/nannettethacker/commentapi.aspx?PostID=6867097</wfw:comment><comments>http://weblogs.asp.net/nannettethacker/archive/2009/01/28/employers-should-promote-fitness-because-fit-programmers-program-better.aspx#comments</comments><description>Employers should encourage programmers to exercise and be fit, as a recent study found that those who are fit have four times less brain shrinkage than those who aren't. And seriously, that can only help you be a better programmer, right? A recent Reader...(&lt;a href="http://weblogs.asp.net/nannettethacker/archive/2009/01/28/employers-should-promote-fitness-because-fit-programmers-program-better.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6867097" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/NannetteThackerShiningstarnet/~4/wWmqDuzffLM" height="1" width="1"/&gt;</description><category domain="http://weblogs.asp.net/nannettethacker/archive/tags/General+Software+Development/default.aspx">General Software Development</category><feedburner:origLink>http://weblogs.asp.net/nannettethacker/archive/2009/01/28/employers-should-promote-fitness-because-fit-programmers-program-better.aspx</feedburner:origLink></item><item><title>ASP.NET Web Application Development Consulting</title><link>http://feedproxy.google.com/~r/NannetteThackerShiningstarnet/~3/0Xbf8rjCEbY/web-application-development-consulting.aspx</link><pubDate>Tue, 27 Jan 2009 16:20:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6861623</guid><dc:creator>nannette</dc:creator><slash:comments>1</slash:comments><wfw:commentRss>http://weblogs.asp.net/nannettethacker/rsscomments.aspx?PostID=6861623</wfw:commentRss><wfw:comment>http://weblogs.asp.net/nannettethacker/commentapi.aspx?PostID=6861623</wfw:comment><comments>http://weblogs.asp.net/nannettethacker/archive/2009/01/27/web-application-development-consulting.aspx#comments</comments><description>Perhaps there are times when you just need a short-term ASP.NET developer for a 3-6 month project and don't wish to invest in a full-time employee. I am available for 1099 or W-2 consulting. No contract is required. Check out the details and my current...(&lt;a href="http://weblogs.asp.net/nannettethacker/archive/2009/01/27/web-application-development-consulting.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6861623" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/NannetteThackerShiningstarnet/~4/0Xbf8rjCEbY" height="1" width="1"/&gt;</description><category domain="http://weblogs.asp.net/nannettethacker/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://weblogs.asp.net/nannettethacker/archive/tags/General+Software+Development/default.aspx">General Software Development</category><feedburner:origLink>http://weblogs.asp.net/nannettethacker/archive/2009/01/27/web-application-development-consulting.aspx</feedburner:origLink></item><item><title>Where's the Integrity?</title><link>http://feedproxy.google.com/~r/NannetteThackerShiningstarnet/~3/P4oxO9hLiLE/where-s-the-integrity.aspx</link><pubDate>Wed, 21 Jan 2009 16:10:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6851499</guid><dc:creator>nannette</dc:creator><slash:comments>11</slash:comments><wfw:commentRss>http://weblogs.asp.net/nannettethacker/rsscomments.aspx?PostID=6851499</wfw:commentRss><wfw:comment>http://weblogs.asp.net/nannettethacker/commentapi.aspx?PostID=6851499</wfw:comment><comments>http://weblogs.asp.net/nannettethacker/archive/2009/01/21/where-s-the-integrity.aspx#comments</comments><description>&lt;P mce_keep="true"&gt;I've said it before, and I'll say it again, "Where is the integrity?"&lt;/P&gt;
&lt;P mce_keep="true"&gt;In "&lt;SPAN class=articlehead&gt;&lt;A class="" href="http://reddevnews.com/news/print.aspx?editorialsid=10531" target=_blank mce_href="http://reddevnews.com/news/print.aspx?editorialsid=10531"&gt;Report Sees Cloud Trend for OSS Developers&lt;/A&gt;," Herb Torrens reported "Interestingly, more than 51 percent [of developers surveyed] also admitted to us that they spend time on nonwork-related open source projects while at work."&lt;/SPAN&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;In &lt;A class="" href="http://www.businessweek.com/magazine/content/08_25/b4089055162244.htm" target=_blank mce_href="http://www.businessweek.com/magazine/content/08_25/b4089055162244.htm"&gt;"May We Have Your Attention, Please?"&lt;/A&gt; Businessweek reports "The average knowledge worker has the attention span of a sparrow. Roughly once every three minutes, typical cubicle dwellers set aside whatever they're doing and start something else—anything else. It could be answering the phone, checking e-mail, responding to an instant message, clicking over to YouTube (&lt;A href="http://investing.businessweek.com/research/stocks/snapshot/snapshot.asp?symbol=GOOG" rel=ticker mce_href="http://investing.businessweek.com/research/stocks/snapshot/snapshot.asp?symbol=GOOG"&gt;&lt;FONT color=#007cd5&gt;GOOG&lt;/FONT&gt;&lt;/A&gt;), or posting something amusing on Facebook. Constant interruptions are the Achilles' heel of the information economy in the U.S. These distractions consume as much as 28% of the average U.S. worker's day, including recovery time, and sap productivity to the tune of $650 billion a year, according to Basex, a business research company in New York City."&lt;/P&gt;
&lt;P mce_keep="true"&gt;Whether for a contract or permanent position, when I'm getting paid, that time is my client's. Not my own. As I've said before, would you work as a sales clerk at Wal-mart and take $50 out of the cash register for yourself to keep? That's what you're doing to your employer when you spend personal time on non-work related things. No wonder the cost of developing a website is so much when half of the employees are goofing off.&lt;/P&gt;
&lt;P mce_keep="true"&gt;May dishonesty keep you awake at night and integrity grant you blissful sleep, and when it does....&lt;/P&gt;
&lt;P mce_keep="true"&gt;May your dreams be in ASP.NET!&lt;/P&gt;
&lt;P mce_keep="true"&gt;Nannette Thacker&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6851499" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/NannetteThackerShiningstarnet/~4/P4oxO9hLiLE" height="1" width="1"/&gt;</description><category domain="http://weblogs.asp.net/nannettethacker/archive/tags/General+Software+Development/default.aspx">General Software Development</category><feedburner:origLink>http://weblogs.asp.net/nannettethacker/archive/2009/01/21/where-s-the-integrity.aspx</feedburner:origLink></item><item><title>Image Text using GDI+: Creating an Image from Text or Adding Text to an Existing Image</title><link>http://feedproxy.google.com/~r/NannetteThackerShiningstarnet/~3/mtSXMyrQmWw/image-text-using-gdi-creating-an-image-from-text-or-adding-text-to-an-existing-image.aspx</link><pubDate>Wed, 14 Jan 2009 14:33:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6830344</guid><dc:creator>nannette</dc:creator><slash:comments>6</slash:comments><wfw:commentRss>http://weblogs.asp.net/nannettethacker/rsscomments.aspx?PostID=6830344</wfw:commentRss><wfw:comment>http://weblogs.asp.net/nannettethacker/commentapi.aspx?PostID=6830344</wfw:comment><comments>http://weblogs.asp.net/nannettethacker/archive/2009/01/14/image-text-using-gdi-creating-an-image-from-text-or-adding-text-to-an-existing-image.aspx#comments</comments><description>&lt;P mce_keep="true"&gt;There are some nice tutorials on how to display text as an image. Some examples of when you might wish to use something like this is perhaps if you wish to display your email address on a web page, but don't want it to be harvested by spammers; a CAPTCHA for authenticating a real person on log in, or adding a URL to existing images on your site to keep them from being "swiped" by others.&lt;/P&gt;
&lt;P mce_keep="true"&gt;I'm going to demonstrate the last scenario,&amp;nbsp;a simple method that will print text to the bottom left of an image. You could easily alter it to pass in the x and y coordinates of where you wish to add the text, if desired.&lt;/P&gt;
&lt;P mce_keep="true"&gt;Please download the &lt;A href="http://weblogs.asp.net/blogs/nannettethacker/ImageEdit.zip"&gt;ImageEdit.zip&lt;/A&gt;&amp;nbsp;which contains code&amp;nbsp;for both this example and an example of &lt;A class="" href="http://weblogs.asp.net/nannettethacker/archive/2009/01/13/resizing-asp-net-images-using-gdi-dynamically.aspx" target=_blank mce_href="http://weblogs.asp.net/nannettethacker/archive/2009/01/13/resizing-asp-net-images-using-gdi-dynamically.aspx"&gt;Resizing ASP.NET Images Using GDI+ Dynamically&lt;/A&gt;.&amp;nbsp;&lt;/P&gt;
&lt;P mce_keep="true"&gt;Here is what our final image will look like:&lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;A href="http://weblogs.asp.net/blogs/nannettethacker/PiperAtPC.jpg"&gt;&lt;IMG src="http://weblogs.asp.net/blogs/nannettethacker/PiperAtPC.jpg" border=0&gt;&lt;/A&gt;&lt;/P&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;/FONT&gt;In my code-in-front, I have this:&lt;/P&gt;&lt;FONT size=2&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;lt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;asp&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;:&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;Image&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;&lt;FONT color=#ff0000 size=2&gt;ID&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;="Image1"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;&lt;FONT color=#ff0000 size=2&gt;runat&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;="server"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;/&amp;gt;&amp;lt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;br&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;/&amp;gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;lt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;asp&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;:&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;Button&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;&lt;FONT color=#ff0000 size=2&gt;ID&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;="Button1"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;&lt;FONT color=#ff0000 size=2&gt;runat&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;="server"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;&lt;FONT color=#ff0000 size=2&gt;Text&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;="Button"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;/&amp;gt;&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;
&lt;P&gt;In the code-behind I make sure to import:&lt;/P&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;
&lt;P&gt;Imports&lt;FONT size=2&gt;&lt;FONT color=#000000&gt; System.Drawing&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;Imports&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT color=#000000&gt; System.Drawing.Imaging&lt;BR&gt;&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;
&lt;P&gt;You may add this to your Page_Load or a button click event or some method you call:&lt;/P&gt;&lt;FONT size=2&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Dim&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; fileNameFrom &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;String&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; = Server.MapPath(&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;"~/Images/PiperAtComputer.jpg"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;)&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Dim&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; fileNameTo &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;String&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; = Server.MapPath(&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;"~/Images/test2.jpg"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;)&lt;BR&gt;TextOnImage(&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;"Programming Is Fun!"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;, fileNameFrom, fileNameTo)&lt;BR&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;Image1.ImageUrl = &lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;"~/Images/test2.jpg"&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;
&lt;P&gt;From the above, you see that to call our TextOnImage method, pass in a path from your root directory.&lt;/P&gt;&lt;FONT size=2&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Protected&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Sub&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; TextOnImage(&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;ByVal&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; textString &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;String&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;, _&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;ByVal&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; fileNameFrom &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;String&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;, _&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;ByVal&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; fileNameTo &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;String&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;)&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Dim&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; Bmp &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; Drawing.Bitmap = Drawing.Bitmap.FromFile(fileNameFrom)&lt;/FONT&gt;&lt;/P&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Using&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; graphicsImage &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; Graphics = Graphics.FromImage(Bmp)&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Dim&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; typeFont &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;New&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; Font(&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;"Arial"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;, 8, FontStyle.Bold)&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt;&lt;FONT color=#008000 size=2&gt;' get height of current image&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Dim&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; height &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Integer&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; = Bmp.Height&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt;&lt;FONT color=#008000 size=2&gt;' start string in 2 pixels from left and 15 pixels up from the bottom of the image&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Dim&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; leftMargin &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Integer&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; = 2&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Dim&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; bottomMargin &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Integer&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; = height - 15&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; 
&lt;P&gt;graphicsImage.DrawString(textString, typeFont, Brushes.WhiteSmoke, leftMargin, bottomMargin)&lt;BR&gt;Bmp.Save(fileNameTo, ImageFormat.Jpeg)&lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;End&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Using&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;Bmp.Dispose()&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;End&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Sub&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt; 
&lt;P mce_keep="true"&gt;&lt;/FONT&gt;&lt;/FONT&gt;Other examples show how to create a new&amp;nbsp;image from text.&lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;A class="" href="http://www.codeproject.com/KB/aspnet/DynamicASPDotNETTextImage.aspx" target=_blank mce_href="http://www.codeproject.com/KB/aspnet/DynamicASPDotNETTextImage.aspx"&gt;Dynamic ASP.NET Text Image&lt;/A&gt;&amp;nbsp;(C#) - This shows how to take text and display it as an image. Within this article, a reader posts a message how to do this with a &lt;A class="" href="http://www.codeproject.com/KB/aspnet/DynamicASPDotNETTextImage.aspx?fid=34630&amp;amp;select=2224920#xx2224920xx" target=_blank mce_href="http://www.codeproject.com/KB/aspnet/DynamicASPDotNETTextImage.aspx?fid=34630&amp;amp;select=2224920#xx2224920xx"&gt;transparent background&lt;/A&gt;&amp;nbsp;(VB)&amp;nbsp;which he altered after viewing &lt;A class="" href="http://aspalliance.com/cookbook/ViewSource.aspx?Filename=Recipe2213cs.aspx&amp;amp;RecipeType=ASPX" target=_blank mce_href="http://aspalliance.com/cookbook/ViewSource.aspx?Filename=Recipe2213cs.aspx&amp;amp;RecipeType=ASPX"&gt;this code&lt;/A&gt;&amp;nbsp;(C#). Another readers shows &lt;A class="" href="http://www.codeproject.com/KB/aspnet/DynamicASPDotNETTextImage.aspx?fid=34630&amp;amp;select=917707#xx917707xx" target=_blank mce_href="http://www.codeproject.com/KB/aspnet/DynamicASPDotNETTextImage.aspx?fid=34630&amp;amp;select=917707#xx917707xx"&gt;how to display an image in an image control&lt;/A&gt;.&lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;A class="" href="http://mvark.blogspot.com/2004/12/code-programmatically-add-text-to.html" target=_blank mce_href="http://mvark.blogspot.com/2004/12/code-programmatically-add-text-to.html"&gt;Programmatically add text to an image&lt;/A&gt; (C#) &lt;/P&gt;
&lt;P mce_keep="true"&gt;May your dreams be in ASP.NET!&amp;nbsp;&lt;/P&gt;
&lt;P mce_keep="true"&gt;P.S. Some other imaging urls of interest:&lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;A class="" href="http://www.codeproject.com/KB/web-image/ASPImaging1.aspx" target=_blank mce_href="http://www.codeproject.com/KB/web-image/ASPImaging1.aspx"&gt;Displaying Dynamically Generated Images&lt;/A&gt;&amp;nbsp;(C#)&amp;nbsp;-&amp;nbsp; I downloaded this zip project and it works with 3.5 framework. The demo zooms and enlarges an image of a pineapple.&lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;SPAN class=PageHeadingGreen id=ctl00_ContentPlaceHolder1_SectionContentListing1_lblSectionHeading&gt;&lt;A class="" href="http://www.vbdotnetheaven.com/Articles/ArticleListing.aspx?SectionID=2&amp;amp;SubSectionID=110" target=_blank mce_href="http://www.vbdotnetheaven.com/Articles/ArticleListing.aspx?SectionID=2&amp;amp;SubSectionID=110"&gt;Graphics in VB.NET - Articles, Resources, Downloads, Blogs, Book Chapters, Tutorial, Source code&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;SPAN class=PageHeadingGreen&gt;&lt;SPAN class=PageHeadingGreen id=ctl00_ContentPlaceHolder1_SectionContentListing1_lblSectionHeading&gt;&lt;A class="" href="http://www.c-sharpcorner.com/Articles/ArticleListing.aspx?SectionID=1&amp;amp;SubSectionID=4" target=_blank mce_href="http://www.c-sharpcorner.com/Articles/ArticleListing.aspx?SectionID=1&amp;amp;SubSectionID=4"&gt;GDI+ &amp;amp; Graphics in C# - Articles, Resources, Downloads, Blogs, Book Chapters, Tutorial and Source code&lt;/A&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;SPAN class=PageHeadingGreen&gt;&lt;SPAN class=Article_Title&gt;&lt;A class="" href="http://www.devsource.com/c/a/Languages/Getting-Started-with-GDI-in-C-Applications/" target=_blank mce_href="http://www.devsource.com/c/a/Languages/Getting-Started-with-GDI-in-C-Applications/"&gt;Getting Started with GDI+ in C# Applications&lt;/A&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;SPAN class=PageHeadingGreen&gt;&lt;SPAN class=Article_Title&gt;&lt;A class="" href="http://www.vbdotnetheaven.com/UploadFile/mahesh/GdiPlusBiggeners04272005015358AM/GdiPlusBiggeners.aspx" target=_blank mce_href="http://www.vbdotnetheaven.com/UploadFile/mahesh/GdiPlusBiggeners04272005015358AM/GdiPlusBiggeners.aspx"&gt;GDI+ in VB.NET Tutorial for Beginners&lt;/A&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;SPAN class=PageHeadingGreen&gt;&lt;SPAN class=Article_Title&gt;&lt;A class="" href="http://www.vbdotnetheaven.com/UploadFile/mmehta/OpeningViewingImagesText04232005004923AM/OpeningViewingImagesText.aspx" target=_blank mce_href="http://www.vbdotnetheaven.com/UploadFile/mmehta/OpeningViewingImagesText04232005004923AM/OpeningViewingImagesText.aspx"&gt;Opening and viewing Images and Text files&lt;/A&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;SPAN class=PageHeadingGreen&gt;&lt;SPAN class=Article_Title&gt;&lt;A class="" href="http://www.c-sharpcorner.com/UploadFile/scottlysle/ImageConverter09132006105604AM/ImageConverter.aspx" target=_blank mce_href="http://www.c-sharpcorner.com/UploadFile/scottlysle/ImageConverter09132006105604AM/ImageConverter.aspx"&gt;Image Conversion Utility in C#&lt;/A&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6830344" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/NannetteThackerShiningstarnet/~4/mtSXMyrQmWw" height="1" width="1"/&gt;</description><category domain="http://weblogs.asp.net/nannettethacker/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://weblogs.asp.net/nannettethacker/archive/tags/Web+Images/default.aspx">Web Images</category><category domain="http://weblogs.asp.net/nannettethacker/archive/tags/General+Software+Development/default.aspx">General Software Development</category><category domain="http://weblogs.asp.net/nannettethacker/archive/tags/GDI_2B00_/default.aspx">GDI+</category><feedburner:origLink>http://weblogs.asp.net/nannettethacker/archive/2009/01/14/image-text-using-gdi-creating-an-image-from-text-or-adding-text-to-an-existing-image.aspx</feedburner:origLink></item><item><title>Resizing ASP.NET Images Using GDI+ Dynamically</title><link>http://feedproxy.google.com/~r/NannetteThackerShiningstarnet/~3/KejjSPg5F8M/resizing-asp-net-images-using-gdi-dynamically.aspx</link><pubDate>Tue, 13 Jan 2009 14:38:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6831501</guid><dc:creator>nannette</dc:creator><slash:comments>4</slash:comments><wfw:commentRss>http://weblogs.asp.net/nannettethacker/rsscomments.aspx?PostID=6831501</wfw:commentRss><wfw:comment>http://weblogs.asp.net/nannettethacker/commentapi.aspx?PostID=6831501</wfw:comment><comments>http://weblogs.asp.net/nannettethacker/archive/2009/01/13/resizing-asp-net-images-using-gdi-dynamically.aspx#comments</comments><description>&lt;P mce_keep="true"&gt;&lt;A href="http://weblogs.asp.net/blogs/nannettethacker/ImageResize1.jpg"&gt;&lt;A href="http://weblogs.asp.net/blogs/nannettethacker/ImageResize1.jpg"&gt;&lt;/A&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;In ASP.NET, you may easily resize images without using a third-party control. Whether reducing or enlarging, or creating a thumbnail image, ASP.NET is your oyster.&lt;/P&gt;
&lt;P mce_keep="true"&gt;I'd like to review a solution by Alex Hildyard and demonstrate his custom&amp;nbsp;ImageResize class in action. I'll provide a zip file for you to download with both my UI layer and Alex's ImageResize class project.&lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;A class="" href="http://www.devx.com/dotnet/article/22079/1763/page/1" target=_blank mce_href="http://www.devx.com/dotnet/article/22079/1763/page/1"&gt;Go Picture Crazy: Resize Images Using GDI+&lt;/A&gt;&amp;nbsp;(C#)&amp;nbsp;provides a tutorial and zip file and shows how to avoid using the GetThumbnailImage method to manipulate the size of an image and instead use the ImageResize class created by author, Alex Hildyard,&amp;nbsp;who explains:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P mce_keep="true"&gt;"The problem is, certain kinds of image formats (for example, JPEG) may already include embedded thumbnails, and under these circumstances &lt;SPAN class=pf&gt;GetThumbnailImage()&lt;/SPAN&gt; just extracts the image's existing thumbnail and scales it to the proportions you specify, rather than generating a new bitmap by resampling the original image. In fact, many digital cameras will generate and embed a thumbnail automatically whenever you take a picture, so that you can quickly browse through any pictures you've taken on the camera itself."&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P mce_keep="true"&gt;In my example of using his class (VB.NET), we are going to create a proportionate resized image by pixels&amp;nbsp;and save it to a file, and also create a proportionate resized image&amp;nbsp;by percent and save it to an output stream to be used in the "src" tag of an image. Below is an example of our resuts:&lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;A href="http://weblogs.asp.net/blogs/nannettethacker/ImageResize1.jpg"&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;A href="http://weblogs.asp.net/blogs/nannettethacker/ImageResize1.jpg"&gt;&lt;IMG src="http://weblogs.asp.net/blogs/nannettethacker/ImageResize1.jpg" border=0&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;To use the zip, within your original web project, simply go to File / Add Existing Project, and select the ImageResize.csproj. Using Alex's original zip, I right-clicked the project, selected Properties, and from the Application tab, changed the Target Framework to 3.5. Then in your web project, be sure to add this project to your references.&lt;/P&gt;
&lt;P mce_keep="true"&gt;In my web form aspx page within my web application, I added this to the code-in-front:&lt;/P&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT size=2&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT size=2&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;lt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;asp&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;:&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;Image&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;&lt;FONT color=#ff0000 size=2&gt;ID&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;="Image2"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;&lt;FONT color=#ff0000 size=2&gt;runat&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;="server"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;/&amp;gt;&amp;lt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;br&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;/&amp;gt;&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;50 pixels high, saved to a file.&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;lt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;br&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;/&amp;gt;&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;lt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;asp&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;:&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;Label&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;&lt;FONT color=#ff0000 size=2&gt;ID&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;="Label2"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;&lt;FONT color=#ff0000 size=2&gt;runat&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;="server"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;&lt;FONT color=#ff0000 size=2&gt;Text&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;=""&amp;gt;&amp;lt;/&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;asp&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;:&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;Label&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;gt;&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;lt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;br&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;/&amp;gt;&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;lt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;br&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;/&amp;gt;&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;lt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;asp&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;:&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;Image&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;&lt;FONT color=#ff0000 size=2&gt;ID&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;="Image3"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;&lt;FONT color=#ff0000 size=2&gt;runat&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;="server"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;/&amp;gt;&amp;lt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;br&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;/&amp;gt;&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;10 percent high, saved to an output stream.&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;lt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;br&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;/&amp;gt;&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;lt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;asp&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;:&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;Label&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;&lt;FONT color=#ff0000 size=2&gt;ID&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;="Label3"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;&lt;FONT color=#ff0000 size=2&gt;runat&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;="server"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;&lt;FONT color=#ff0000 size=2&gt;Text&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;=""&amp;gt;&amp;lt;/&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;asp&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;:&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;Label&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;gt;&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&lt;/FONT&gt;&lt;/FONT&gt;
&lt;P mce_keep="true"&gt;In the code-behind, I added this:&lt;/P&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;
&lt;P&gt;Imports&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; ImageHelper&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Imports&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; System.Drawing.Imaging&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Imports&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; System.Drawing&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Partial&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Class&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; _Default&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Inherits&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; System.Web.UI.Page&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Private&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Sub&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; Page_Load(&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;ByVal&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; sender &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Object&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;, &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;ByVal&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; e &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; System.EventArgs) &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Handles&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Me&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;.Load&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; 
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;If&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Not&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; Page.IsPostBack &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Then&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;LoadImage()&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;End&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;If&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;End&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Sub&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Private&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Sub&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; LoadImage()&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Dim&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; filepathFrom &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;String&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; = Server.MapPath(&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;"~/Images/DSCF0015.JPG"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;)&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Dim&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; filepathTo &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;String&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; = Server.MapPath(&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;"~/Images/test1.JPG"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;)&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; 
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Dim&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; o &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;New&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; ImageResize()&lt;BR&gt;o.File = filepathFrom&lt;BR&gt;o.Height = 50&lt;BR&gt;o.UsePercentages = &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;False&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;o.GetThumbnail().Save(filepathTo, ImageFormat.Jpeg)&lt;BR&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;Image2.ImageUrl = &lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;"~/images/test1.jpg"&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;Label1.Text = GetImageValues(filepathFrom)&lt;BR&gt;Label2.Text = GetImageValues(filepathTo)&lt;BR&gt;Image3.ImageUrl = &lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;"ImageResizer.aspx?filepath="&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &amp;amp; filepathFrom &amp;amp; &lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;"&amp;amp;height=10&amp;amp;usepercent=true"&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;Label3.Text = &lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;"Width: 283 Height: 212"&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;End&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Sub&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Protected&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Function&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; GetImageValues(&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;ByVal&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; fileName &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;String&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;) &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;String&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Dim&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; Bmp &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; Drawing.Bitmap = Drawing.Bitmap.FromFile(fileName)&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Dim&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; labelString &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;String&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; = &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;String&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;.Empty&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Dim&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; height &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Integer&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; = Bmp.Height&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Dim&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; width &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Integer&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; = Bmp.Width&lt;BR&gt;Bmp.Dispose()&lt;BR&gt;labelString = &lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;"Width: "&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &amp;amp; width.ToString &amp;amp; &lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;" Height: "&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &amp;amp; height.ToString&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Return&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; labelString&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;End&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Function&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt; 
&lt;P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;End&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Class&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;
&lt;P&gt;In the LoadImages method, put your path to the existing file and path to the new file. If you set UsePercentages to True, 50 will equal 50% of the image height, and if False, 50 will be 50 pixels high.&lt;/P&gt;
&lt;P&gt;Notice Image2 is loaded on the page within the codebehind. If you want to embed the resizer within your src url, as done with Image3, simply create another web form, in my example I named it "ImageResizer." Add nothing to the code-in-front, and in the code behind, add this:&lt;/FONT&gt;&lt;/P&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;
&lt;P&gt;Imports&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; ImageHelper&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Imports&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; System.Drawing.Imaging&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Partial&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Class&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; ImageResizer&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Inherits&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; System.Web.UI.Page&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; 
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Private&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Sub&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; Page_Load(&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;ByVal&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; sender &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Object&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;, &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;ByVal&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; e &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; System.EventArgs) &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Handles&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Me&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;.Load&lt;BR&gt;LoadImage()&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;End&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Sub&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Private&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Sub&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; LoadImage()&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Dim&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; filepath &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;String&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; = Request.QueryString(&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;"filepath"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;)&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Dim&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; height &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;String&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; = Request.QueryString(&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;"height"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;)&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Dim&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; usePercent &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;String&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; = Request.QueryString(&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;"usepercent"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;)&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; 
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;If&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; usePercent = &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;String&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;.Empty &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Then&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;usePercent = &lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;"false"&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;End&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;If&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;If&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; filepath &amp;lt;&amp;gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;String&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;.Empty &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Then&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Dim&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; o &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;New&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; ImageResize()&lt;BR&gt;o.File = filepath&lt;BR&gt;o.Height = &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;CInt&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;(height)&lt;BR&gt;o.UsePercentages = &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;CBool&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;(usePercent)&lt;BR&gt;o.GetThumbnail().Save(Response.OutputStream, ImageFormat.Jpeg)&lt;/FONT&gt;&lt;/P&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;End&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;If&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;End&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Sub&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt; End&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Class&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt; 
&lt;P mce_keep="true"&gt;&lt;/FONT&gt;&lt;/FONT&gt;Notice how the dynamic values are added to the query string in the original Image3.ImageURL and retreived in the ImageResizer LoadImage() method:&lt;/P&gt;
&lt;P mce_keep="true"&gt;Image3.ImageUrl = &lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;"ImageResizer.aspx?filepath="&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &amp;amp; filepathFrom &amp;amp; &lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;"&amp;amp;height=10&amp;amp;usepercent=true"&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;You may download the complete zip file: &lt;A href="http://weblogs.asp.net/blogs/nannettethacker/ImageEdit.zip"&gt;ImageEdit.zip&lt;/A&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;The ImageEdit.zip file also contains the source code for &lt;A class="" href="http://weblogs.asp.net/nannettethacker/archive/2009/01/14/image-text-using-gdi-creating-an-image-from-text-or-adding-text-to-an-existing-image.aspx" target=_blank mce_href="http://weblogs.asp.net/nannettethacker/archive/2009/01/14/image-text-using-gdi-creating-an-image-from-text-or-adding-text-to-an-existing-image.aspx"&gt;Image Text using GDI+: Creating an Image from Text or Adding Text to an Existing Image&lt;/A&gt;.&lt;/P&gt;
&lt;P mce_keep="true"&gt;May your dreams be in ASP.NET and your images resized for the web!&lt;/P&gt;
&lt;P mce_keep="true"&gt;Nannette Thacker&lt;/P&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6831501" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/NannetteThackerShiningstarnet/~4/KejjSPg5F8M" height="1" width="1"/&gt;</description><category domain="http://weblogs.asp.net/nannettethacker/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://weblogs.asp.net/nannettethacker/archive/tags/Web+Images/default.aspx">Web Images</category><category domain="http://weblogs.asp.net/nannettethacker/archive/tags/General+Software+Development/default.aspx">General Software Development</category><category domain="http://weblogs.asp.net/nannettethacker/archive/tags/ASP.NET+Links/default.aspx">ASP.NET Links</category><category domain="http://weblogs.asp.net/nannettethacker/archive/tags/GDI_2B00_/default.aspx">GDI+</category><feedburner:origLink>http://weblogs.asp.net/nannettethacker/archive/2009/01/13/resizing-asp-net-images-using-gdi-dynamically.aspx</feedburner:origLink></item><item><title>Enabling ASP Classic error messages in IIS7 and Windows Web Server 2008</title><link>http://feedproxy.google.com/~r/NannetteThackerShiningstarnet/~3/OLmLzWp50P0/enabling-asp-classic-error-messages-in-iis7-and-windows-web-server-2008.aspx</link><pubDate>Fri, 09 Jan 2009 14:00:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6828341</guid><dc:creator>nannette</dc:creator><slash:comments>2</slash:comments><wfw:commentRss>http://weblogs.asp.net/nannettethacker/rsscomments.aspx?PostID=6828341</wfw:commentRss><wfw:comment>http://weblogs.asp.net/nannettethacker/commentapi.aspx?PostID=6828341</wfw:comment><comments>http://weblogs.asp.net/nannettethacker/archive/2009/01/09/enabling-asp-classic-error-messages-in-iis7-and-windows-web-server-2008.aspx#comments</comments><description>&lt;P mce_keep="true"&gt;I recently moved my asp classic code from my windows 2000 web server to my windows 2008 web server. But alas, error messages are turned off by default. I got a whole lot of blank pages with grinding hour glasses.&lt;/P&gt;
&lt;P mce_keep="true"&gt;To turn back on the error messages, I found two invaluable posts on the web:&lt;/P&gt;
&lt;P mce_keep="true"&gt;The first post covered about everything I needed:&lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;A class="" href="http://forums.iis.net/p/1149471/1870011.aspx" target=_blank mce_href="http://forums.iis.net/p/1149471/1870011.aspx"&gt;ASP Detailed Error Messages&lt;/A&gt;. From this post, these are the three things that are required for turning on error messages. Most developers will likely already have the first step done.&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P mce_keep="true"&gt;"Turn off HTTP Friendly Errors in your web browser.&lt;BR&gt;&lt;A href="http://support.microsoft.com/kb/294807"&gt;&lt;STRONG&gt;http://support.microsoft.com/kb/294807&lt;/STRONG&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;To revert back to IIS6- behavior, simply run the following command:&lt;BR&gt;&lt;STRONG&gt;%windir%\system32\inetsrv\appcmd set config -section:asp -scriptErrorSentToBrowser:true&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;You also have to configure IIS custom-error to allow detailed errors to be sent to remote clients.&lt;BR&gt;&lt;STRONG&gt;%windir%\system32\inetsrv\appcmd.exe set config -section:system.webServer/httpErrors -errorMode:Detailed (default is DetailedLocalOnly).&lt;/STRONG&gt;"&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P mce_keep="true"&gt;I wanted to see if there was a GUI method of doing the above&amp;nbsp;two commands, and found a screenshot for&amp;nbsp;&amp;nbsp;&lt;STRONG&gt;scriptErrorSentToBrowser &lt;/STRONG&gt;in this second post.&lt;/P&gt;
&lt;P mce_keep="true"&gt;I couldn't find a GUI method of doing the errorMode, and you'll notice that AnilR recommends "Note that you would never want to do the last&amp;nbsp;step on a production server."&amp;nbsp;If anyone knows where this can be setup via the GUI, please let us know.&lt;/P&gt;
&lt;P mce_keep="true"&gt;The second post lists &lt;A class="" href="http://blogs.iis.net/bills/archive/2007/05/21/tips-for-classic-asp-developers-on-iis7.aspx" target=_blank mce_href="http://blogs.iis.net/bills/archive/2007/05/21/tips-for-classic-asp-developers-on-iis7.aspx"&gt;Tips for Classic ASP Developers&lt;/A&gt;. Scroll down to the section on "Script errors no longer shown in browser by default." There you'll see screenshots of how to set the "&lt;EM&gt;scriptErrorSentToBrowser"&lt;/EM&gt; setting via the GUI. This second post doesn't mention the "errorMode" but I found that doing the first command without the errorMode command was useless. I had to have the second command before messages were sent to the screen.&lt;/P&gt;
&lt;P mce_keep="true"&gt;You may also wish to look at the next section on preventing errors due to the&amp;nbsp;"Parents paths disabled by default" setting.&lt;/P&gt;
&lt;P mce_keep="true"&gt;I also should mention that you may need to run your commands as Administrator, from this post on "&lt;A class="" href="http://blogs.iis.net/thomad/archive/2007/02/06/security-is-painful.aspx" target=_blank mce_href="http://blogs.iis.net/thomad/archive/2007/02/06/security-is-painful.aspx"&gt;Classic ASP: Security is Painful&lt;/A&gt;" we read these steps on running as administrator:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P mce_keep="true"&gt;"1) Start an elevated command prompt. Right-click the command shell item in the Start-Accessories menu and select "Run&amp;nbsp;as Administrator". &lt;/P&gt;
&lt;P&gt;2) Run the following command: %windir%\system32\inetsrv\appcmd set config -section:asp -scriptErrorSentToBrowser:true"&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;May your dreams be in ASP.NET and your classic applications magically converted to .NET while you sleep,&lt;/P&gt;
&lt;P&gt;Nannette Thacker&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6828341" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/NannetteThackerShiningstarnet/~4/OLmLzWp50P0" height="1" width="1"/&gt;</description><category domain="http://weblogs.asp.net/nannettethacker/archive/tags/ASP+Classic/default.aspx">ASP Classic</category><category domain="http://weblogs.asp.net/nannettethacker/archive/tags/General+Software+Development/default.aspx">General Software Development</category><category domain="http://weblogs.asp.net/nannettethacker/archive/tags/IIS7/default.aspx">IIS7</category><category domain="http://weblogs.asp.net/nannettethacker/archive/tags/Web+Server+2008/default.aspx">Web Server 2008</category><feedburner:origLink>http://weblogs.asp.net/nannettethacker/archive/2009/01/09/enabling-asp-classic-error-messages-in-iis7-and-windows-web-server-2008.aspx</feedburner:origLink></item><item><title>Setting Maximum Failures: Windows 2008 and IIS7 Application Pool Stopped</title><link>http://feedproxy.google.com/~r/NannetteThackerShiningstarnet/~3/30oKwhUS8VI/windows-2008-and-iis7-application-pool-stopped.aspx</link><pubDate>Thu, 08 Jan 2009 20:50:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6828260</guid><dc:creator>nannette</dc:creator><slash:comments>6</slash:comments><wfw:commentRss>http://weblogs.asp.net/nannettethacker/rsscomments.aspx?PostID=6828260</wfw:commentRss><wfw:comment>http://weblogs.asp.net/nannettethacker/commentapi.aspx?PostID=6828260</wfw:comment><comments>http://weblogs.asp.net/nannettethacker/archive/2009/01/08/windows-2008-and-iis7-application-pool-stopped.aspx#comments</comments><description>&lt;P mce_keep="true"&gt;In IIS7, when your application pool errors so many times, it will automatically stop the application pool, thus taking your web application off line.&lt;/P&gt;
&lt;H2&gt;Service Unavailable&lt;/H2&gt;
&lt;HR&gt;

&lt;P&gt;HTTP Error 503. The service is unavailable.&lt;/P&gt;
&lt;P mce_keep="true"&gt;In your&amp;nbsp;system events log, you&amp;nbsp;will also have an error:&lt;/P&gt;
&lt;P mce_keep="true"&gt;'A process serving application pool 'Pool Name' terminated unexpectedly...'&amp;nbsp;&lt;/P&gt;
&lt;P mce_keep="true"&gt;To restart it,&amp;nbsp;go to the application pool in IIS7 and select the stopped pool and restart it.&amp;nbsp;&lt;/P&gt;
&lt;P mce_keep="true"&gt;This can be a real nuisance when you're debugging code and getting a lot of errors. To change the number of allowed failures, go to the application pool for the website you are working on in IIS7. Select it in the application pool list. Select "Advanced Settings" from the Actions panel on the right. Scroll down to Maximum Failures and change the number to a larger number. Mine was 5 by default and below I changed it to 50.&lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;A href="http://weblogs.asp.net/blogs/nannettethacker/Fail1.jpg" mce_href="http://weblogs.asp.net/blogs/nannettethacker/Fail1.jpg"&gt;&lt;IMG src="http://weblogs.asp.net/blogs/nannettethacker/Fail1.jpg" border=0 mce_src="http://weblogs.asp.net/blogs/nannettethacker/Fail1.jpg"&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;Then when you're done debugging/developing, change it back to a lower number as desired.&amp;nbsp;&lt;/P&gt;
&lt;P mce_keep="true"&gt;This is great because you can create a pool for different applications and only increase this setting on the application that you're working on that is causing the failures. So be sure to assign your "buggy" application to its own pool, rather than having it share a pool with your "behaved" applications.&lt;/P&gt;
&lt;P mce_keep="true"&gt;May your dreams be in ASP.NET!&lt;/P&gt;
&lt;P mce_keep="true"&gt;Nannette Thacker&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6828260" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/NannetteThackerShiningstarnet/~4/30oKwhUS8VI" height="1" width="1"/&gt;</description><category domain="http://weblogs.asp.net/nannettethacker/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://weblogs.asp.net/nannettethacker/archive/tags/General+Software+Development/default.aspx">General Software Development</category><category domain="http://weblogs.asp.net/nannettethacker/archive/tags/3.5+SP1/default.aspx">3.5 SP1</category><category domain="http://weblogs.asp.net/nannettethacker/archive/tags/IIS7/default.aspx">IIS7</category><category domain="http://weblogs.asp.net/nannettethacker/archive/tags/Web+Server+2008/default.aspx">Web Server 2008</category><feedburner:origLink>http://weblogs.asp.net/nannettethacker/archive/2009/01/08/windows-2008-and-iis7-application-pool-stopped.aspx</feedburner:origLink></item></channel></rss>
