<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" 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/"><channel><title>Dynamic Image Generation in Silverlight</title><link>http://blogs.msdn.com/jstegman/archive/2008/04/21/dynamic-image-generation-in-silverlight.aspx</link><description>I’ve posted a sample PNG image generator here (Beta 1 bits). This has 3 dynamically generated images – one randomly filled 64x64 image that’s updated at 6 frames/sec. A second 128x128 image with a gradient fill and a third that’s a 512x512 dynamically</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>Microsoft news and tips &amp;raquo; Dynamic Image Generation in Silverlight</title><link>http://blogs.msdn.com/jstegman/archive/2008/04/21/dynamic-image-generation-in-silverlight.aspx#8415817</link><pubDate>Tue, 22 Apr 2008 04:31:21 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8415817</guid><dc:creator>Microsoft news and tips &amp;raquo; Dynamic Image Generation in Silverlight</dc:creator><description>&lt;p&gt;PingBack from &lt;a rel="nofollow" target="_new" href="http://microsoftnews.askpcdoc.com/?p=3596"&gt;http://microsoftnews.askpcdoc.com/?p=3596&lt;/a&gt;&lt;/p&gt;
</description></item><item><title>Générer et modifier une image bitmap en Silverlight 2</title><link>http://blogs.msdn.com/jstegman/archive/2008/04/21/dynamic-image-generation-in-silverlight.aspx#8416166</link><pubDate>Tue, 22 Apr 2008 10:09:12 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8416166</guid><dc:creator>Christophe Lauer, Blog Edition</dc:creator><description>&lt;p&gt;Apr&amp;amp;#232;s un premier billet dans la rubrique &amp;amp;quot;Cookbook Silverlight&amp;amp;quot; qui parlait d'un contr&amp;amp;#244;le&lt;/p&gt;
</description></item><item><title>re: Dynamic Image Generation in Silverlight</title><link>http://blogs.msdn.com/jstegman/archive/2008/04/21/dynamic-image-generation-in-silverlight.aspx#8418574</link><pubDate>Wed, 23 Apr 2008 11:30:26 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8418574</guid><dc:creator>rob_houweling</dc:creator><description>&lt;p&gt;Hi Joe,&lt;/p&gt;
&lt;p&gt;Great stuff!!&lt;/p&gt;
&lt;p&gt;I was wondering though... Is it possible to read the stream of an image using your EditableImage class? Or is this a limitation of SL2 beta 1?&lt;/p&gt;
&lt;p&gt;If it was possible, it would create opportunities for image editing/effects.&lt;/p&gt;
&lt;p&gt;Kind regards,&lt;/p&gt;
&lt;p&gt;Rob Houweling&lt;/p&gt;
</description></item><item><title>Silverlight 2: Generate Images on the fly</title><link>http://blogs.msdn.com/jstegman/archive/2008/04/21/dynamic-image-generation-in-silverlight.aspx#8419307</link><pubDate>Wed, 23 Apr 2008 18:56:22 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8419307</guid><dc:creator>andyBlog [andy britcliffe]</dc:creator><description>&lt;p&gt;Joe Stegman has been hard at work making this happen and has now released an initial version of his PNG&lt;/p&gt;
</description></item><item><title>A Few New Noteworthy SL Samples</title><link>http://blogs.msdn.com/jstegman/archive/2008/04/21/dynamic-image-generation-in-silverlight.aspx#8423090</link><pubDate>Fri, 25 Apr 2008 03:15:31 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8423090</guid><dc:creator>Scott McCraw's Blog</dc:creator><description>&lt;p&gt;I've been OOF on vacation (Hawaii, where it's warm!).&amp;amp;#160; But I'm back now and here's a few new sample&lt;/p&gt;
</description></item><item><title>re: Dynamic Image Generation in Silverlight</title><link>http://blogs.msdn.com/jstegman/archive/2008/04/21/dynamic-image-generation-in-silverlight.aspx#8423682</link><pubDate>Fri, 25 Apr 2008 11:46:17 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8423682</guid><dc:creator>planetmarshalluk</dc:creator><description>&lt;p&gt;Funnily enough I was looking at doing this the other day, you just saved me a lot of work. I've made a couple of modifications, which you may want to consider&lt;/p&gt;
&lt;p&gt;* PNGEncoder&lt;/p&gt;
&lt;p&gt; &amp;nbsp;* Adler32 algorithm. There are some optimizations you could make here, see the Wikipedia article for details on a C implementation which is straightforward to convert to C#&lt;/p&gt;
&lt;p&gt; &amp;nbsp;* Use Array.Copy instead of manual array copies - this is significntly faster&lt;/p&gt;
&lt;p&gt;* EditableBitmap&lt;/p&gt;
&lt;p&gt; &amp;nbsp;* provide a delegate interface implementing the Visitor pattern as well as SetPixel, or something like WPF's WriteableBitmap.WritePixels(). Writing all the pixels in a single op is significantly faster than repeatedly calling SetPixel()&lt;/p&gt;
&lt;p&gt;It should be noted however that writing the pixels is really your bottleneck, so optimizing the Encoder won't make much of a difference.&lt;/p&gt;
&lt;p&gt;I'm currently playing with some multithreaded approaches and will let you know what I come up with.&lt;/p&gt;
&lt;p&gt;Thanks again,&lt;/p&gt;
&lt;p&gt;Andrew.&lt;/p&gt;
</description></item><item><title>re: Dynamic Image Generation in Silverlight</title><link>http://blogs.msdn.com/jstegman/archive/2008/04/21/dynamic-image-generation-in-silverlight.aspx#8423898</link><pubDate>Fri, 25 Apr 2008 14:25:17 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8423898</guid><dc:creator>planetmarshalluk</dc:creator><description>&lt;p&gt;You need to take a look at the for loop in PngEncoder.Encode(). The number of iterations in the loop ( ie the number of blocks written ) is equal to pixelwidth/rowsperblock, which is not what you want ( try creating an image 400x300 and you'll see what I mean ).&lt;/p&gt;
&lt;p&gt;I would replace the for loop with something like this,&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;uint nblocks = dcSize / _MAXBLOCK;&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;uint nbytes = nblocks * _MAXBLOCK;&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;for ( int offset = 0; offset &amp;lt; nbytes; offset += _MAXBLOCK ) &lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;{&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;comp.WriteByte(0x00);&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// write LEN ( length of block )&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;comp.Write(BitConverter.GetBytes(_MAXBLOCK), 0, 2);&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// Write one's compliment of LEN&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;comp.Write(BitConverter.GetBytes(0), 0, 2);&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// Write block&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;comp.Write(data, offset, _MAXBLOCK);&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;}&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// write last block&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;comp.WriteByte(0x01);&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// write LEN ( length of block )&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;uint lastBlock = dcSize - nbytes;&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;comp.Write(BitConverter.GetBytes(lastBlock), 0, 2);&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// Write one's compliment of LEN&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;comp.Write(BitConverter.GetBytes((ushort) ~lastBlock), 0, 2);&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// Write block&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;comp.Write(data, (int) nbytes, (int)lastBlock);&lt;/p&gt;
</description></item><item><title>re: Dynamic Image Generation in Silverlight</title><link>http://blogs.msdn.com/jstegman/archive/2008/04/21/dynamic-image-generation-in-silverlight.aspx#8423906</link><pubDate>Fri, 25 Apr 2008 14:33:50 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8423906</guid><dc:creator>planetmarshalluk</dc:creator><description>&lt;p&gt;whoops - need to modify that last bit of code to deal with images that are an exact multiple of MAXBLOCK bytes. The code will still work, but the last block is of zero length in those cases.&lt;/p&gt;
&lt;p&gt;D'oh!&lt;/p&gt;
</description></item><item><title>re: Dynamic Image Generation in Silverlight</title><link>http://blogs.msdn.com/jstegman/archive/2008/04/21/dynamic-image-generation-in-silverlight.aspx#8431850</link><pubDate>Sun, 27 Apr 2008 17:54:16 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8431850</guid><dc:creator>mdonatas</dc:creator><description>&lt;p&gt;You've done an incredible job! Since PNG encoder was a bit over my head, custom BMP encoder had to suffice. Superb... simply superb! Thanks a bunch :)&lt;/p&gt;
&lt;p&gt;On the other hand this comming from you probably means that Silverlight 2.0 final won't have native support for System.Drawing&lt;/p&gt;
</description></item><item><title>Updated PNG Generator Sample</title><link>http://blogs.msdn.com/jstegman/archive/2008/04/21/dynamic-image-generation-in-silverlight.aspx#8433719</link><pubDate>Mon, 28 Apr 2008 05:06:50 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8433719</guid><dc:creator>Joe Stegman's WebBlog</dc:creator><description>&lt;p&gt;I fixed a few bugs in the ImageGenerator sample . One was related to non-square images and the other&lt;/p&gt;
</description></item><item><title>Performance for displaying image.</title><link>http://blogs.msdn.com/jstegman/archive/2008/04/21/dynamic-image-generation-in-silverlight.aspx#8449886</link><pubDate>Fri, 02 May 2008 12:00:28 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8449886</guid><dc:creator>ismail codar</dc:creator><description>&lt;p&gt;If you setting up height = 500 and width = 500 or greather then in &amp;nbsp;dt_Tick method test screen is can't dislaying.&lt;/p&gt;
&lt;p&gt;Especially performance is problem for animations. I hope next silverlight version is native support raster drawing.&lt;/p&gt;
</description></item><item><title>Great sample</title><link>http://blogs.msdn.com/jstegman/archive/2008/04/21/dynamic-image-generation-in-silverlight.aspx#8531536</link><pubDate>Thu, 22 May 2008 12:30:34 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8531536</guid><dc:creator>LarsG</dc:creator><description>&lt;p&gt;Thx this inspired me to try to do some animations with it.. doing some old school 2d water ripples..&lt;/p&gt;
&lt;p&gt;Lars&lt;/p&gt;
</description></item><item><title>Silverlight - Dynamic DeepZoom with MultiScaleImage and MultiScaleTileSource</title><link>http://blogs.msdn.com/jstegman/archive/2008/04/21/dynamic-image-generation-in-silverlight.aspx#8652241</link><pubDate>Wed, 25 Jun 2008 17:28:01 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8652241</guid><dc:creator>Mike Taulty's Blog</dc:creator><description>&lt;p&gt;One of the things that I've been meaning to experiment with around the MultiScaleImage control in Silverlight...&lt;/p&gt;
</description></item><item><title>Optimizing Joe Stegman's Dynamic Image Generation in Silverlight (Twice the Speed)</title><link>http://blogs.msdn.com/jstegman/archive/2008/04/21/dynamic-image-generation-in-silverlight.aspx#8682658</link><pubDate>Thu, 03 Jul 2008 06:05:55 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8682658</guid><dc:creator>XAML, WPF, Silverlight, .NET, Office 2007, Windows</dc:creator><description>&lt;p&gt;I needed a good and relatively fast dynamic image generation code for Silverlight (for the next sample,&lt;/p&gt;
</description></item><item><title>Reallistic Water Ripples (Rain Drops) in Silverlight</title><link>http://blogs.msdn.com/jstegman/archive/2008/04/21/dynamic-image-generation-in-silverlight.aspx#8685486</link><pubDate>Thu, 03 Jul 2008 23:31:02 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8685486</guid><dc:creator>XAML, WPF, Silverlight, .NET, Office 2007, Windows</dc:creator><description>&lt;p&gt;In this tutorial: - creating and rendering water ripples - optimized image generation - JPEG decoding&lt;/p&gt;
</description></item><item><title>Optimized Joe Stegman's Dynamic Image Generation (Twice the Speed)</title><link>http://blogs.msdn.com/jstegman/archive/2008/04/21/dynamic-image-generation-in-silverlight.aspx#8690172</link><pubDate>Fri, 04 Jul 2008 20:25:44 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8690172</guid><dc:creator>XAML, WPF, Silverlight, .NET, Office 2007, Windows</dc:creator><description>&lt;p&gt;I needed a good and relatively fast dynamic image generation code for Silverlight (for the next sample,&lt;/p&gt;
</description></item><item><title>Building the Reallistic Water Ripples Sample in Silverlight</title><link>http://blogs.msdn.com/jstegman/archive/2008/04/21/dynamic-image-generation-in-silverlight.aspx#8690196</link><pubDate>Fri, 04 Jul 2008 20:30:16 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8690196</guid><dc:creator>XAML, WPF, Silverlight, .NET, Office 2007, Windows</dc:creator><description>&lt;p&gt;In this tutorial: - creating and rendering water ripples - optimized image generation - JPEG decoding&lt;/p&gt;
</description></item><item><title>Silverlight Spectrum Emulator</title><link>http://blogs.msdn.com/jstegman/archive/2008/04/21/dynamic-image-generation-in-silverlight.aspx#8914530</link><pubDate>Mon, 01 Sep 2008 01:52:19 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8914530</guid><dc:creator>Community Blogs</dc:creator><description>&lt;p&gt;So I&amp;amp;#39;ve just finished version 1.0 of my Silverlight spectrum emulator. At the moment there is no&lt;/p&gt;
</description></item><item><title>Minh T. Nguyen's Mandelbrot Explorer 1.0 in Silverlight 2.0 with source code </title><link>http://blogs.msdn.com/jstegman/archive/2008/04/21/dynamic-image-generation-in-silverlight.aspx#9169341</link><pubDate>Wed, 03 Dec 2008 13:19:07 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9169341</guid><dc:creator>Minh T. Nguyen's Blog</dc:creator><description>&lt;p&gt;Minh T. Nguyen 's Mandelbrot Explorer is an application that allows you to zoom into the Mandelbrot set&lt;/p&gt;
</description></item><item><title>Pushing Paint applications into Web 2.0 using Silverlight</title><link>http://blogs.msdn.com/jstegman/archive/2008/04/21/dynamic-image-generation-in-silverlight.aspx#9562121</link><pubDate>Wed, 22 Apr 2009 15:22:56 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9562121</guid><dc:creator>UK StudentZine Blog</dc:creator><description>&lt;p&gt;Paint applications on the desktop has been developing for a long time however there are few available&lt;/p&gt;
</description></item><item><title>"Software" rendering in Balder</title><link>http://blogs.msdn.com/jstegman/archive/2008/04/21/dynamic-image-generation-in-silverlight.aspx#9587888</link><pubDate>Tue, 05 May 2009 09:35:45 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9587888</guid><dc:creator>Einar Ingebrigtsen</dc:creator><description>&lt;p&gt;&amp;quot;Software&amp;quot; rendering in Balder&lt;/p&gt;
</description></item></channel></rss>