<?xml version="1.0" encoding="utf-8"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/"><channel><language>en</language><title>Blog posts by André Hedberg</title> <link>https://world.optimizely.com/blogs/Andre-Hedberg/</link><description></description><ttl>60</ttl><generator>Optimizely World</generator><item> <title>ImageResizer with EPiServer - Revisited</title>            <link>https://world.optimizely.com/blogs/Andre-Hedberg/Dates/2015/12/imageresizer-with-episerver---revisited/</link>            <description>&lt;p&gt;&lt;a title=&quot;https://github.com/Igelkottegrodan/ImageResizer.Plugins.EPiServerBlobPlugin&quot; href=&quot;https://github.com/Igelkottegrodan/ImageResizer.Plugins.EPiServerBlobPlugin&quot;&gt;https://github.com/Igelkottegrodan/ImageResizer.Plugins.EPiServerBlobPlugin&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;First based on my initial blog post (&lt;a href=&quot;http://world.episerver.com/blogs/Andre-Hedberg/Dates/2013/12/Get-ImageResizer-to-play-along-with-EPiServer-75/)&quot;&gt;http://world.episerver.com/blogs/Andre-Hedberg/Dates/2013/12/Get-ImageResizer-to-play-along-with-EPiServer-75/)&lt;/a&gt; and now later adjusted based on excellent feedback from Martin Pickering and source code (&lt;a href=&quot;http://world.episerver.com/Code/Martin-Pickering/ImageResizingNet-integration-for-CMS75/)&quot;&gt;http://world.episerver.com/Code/Martin-Pickering/ImageResizingNet-integration-for-CMS75/)&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;There are some differences:&lt;/p&gt;  &lt;p&gt;Not bound to image types (plugins such as PdfRrenderer &lt;a href=&quot;http://imageresizing.net/docs/v4/plugins/pdfrenderer&quot;&gt;http://imageresizing.net/docs/v4/plugins/pdfrenderer&lt;/a&gt; now works)    &lt;br /&gt;URL check for edit/preview mode is not regex based, it uses EPiServers native methods.    &lt;br /&gt;Enjoy!&lt;/p&gt;</description>            <guid>https://world.optimizely.com/blogs/Andre-Hedberg/Dates/2015/12/imageresizer-with-episerver---revisited/</guid>            <pubDate>Tue, 22 Dec 2015 11:10:24 GMT</pubDate>           <category>Blog post</category></item><item> <title>Get ImageResizer to play along with EPiServer 7.5</title>            <link>https://world.optimizely.com/blogs/Andre-Hedberg/Dates/2013/12/Get-ImageResizer-to-play-along-with-EPiServer-75/</link>            <description>&lt;p&gt;   &lt;p&gt;I don’t know about you but I use ImageResizer a lot (&lt;a href=&quot;http://imageresizing.net/)&quot;&gt;http://imageresizing.net/)&lt;/a&gt;. One of the major changes in EPiServer 7.5 is the way media/images are handled and ImageResizer no longer worked for images stored in EPiServer.&lt;/p&gt;    &lt;p&gt;     &lt;br /&gt;In order to fix this, might maybe be other solutions, is to create a plugin to ImageResizer. This is really simple.&lt;/p&gt;    &lt;pre class=&quot;language-csharp&quot;&gt;&lt;code&gt;&lt;span class=&quot;kwrd&quot;&gt;public&lt;/span&gt; &lt;span class=&quot;kwrd&quot;&gt;class&lt;/span&gt; EPiServerBlobPlugin : IVirtualImageProvider, IPlugin
{
        &lt;span class=&quot;kwrd&quot;&gt;public&lt;/span&gt; &lt;span class=&quot;kwrd&quot;&gt;bool&lt;/span&gt; FileExists(&lt;span class=&quot;kwrd&quot;&gt;string&lt;/span&gt; virtualPath, System.Collections.Specialized.NameValueCollection queryString)
        {
            EPiServerBlobImage blobImage = &lt;span class=&quot;kwrd&quot;&gt;this&lt;/span&gt;.GetImage(virtualPath);

            &lt;span class=&quot;kwrd&quot;&gt;return&lt;/span&gt; (blobImage != &lt;span class=&quot;kwrd&quot;&gt;null&lt;/span&gt;);
        }

        &lt;span class=&quot;kwrd&quot;&gt;public&lt;/span&gt; IVirtualFile GetFile(&lt;span class=&quot;kwrd&quot;&gt;string&lt;/span&gt; virtualPath, System.Collections.Specialized.NameValueCollection queryString)
        {
            &lt;span class=&quot;kwrd&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;kwrd&quot;&gt;this&lt;/span&gt;.GetImage(virtualPath);
        }

        &lt;span class=&quot;kwrd&quot;&gt;private&lt;/span&gt; EPiServerBlobImage GetImage(&lt;span class=&quot;kwrd&quot;&gt;string&lt;/span&gt; virtualPath)
        {
            ContentRouteHelper routeHelper = ServiceLocator.Current.GetInstance&amp;lt;ContentRouteHelper&amp;gt;();
            MediaData mediaData = routeHelper.Content &lt;span class=&quot;kwrd&quot;&gt;as&lt;/span&gt; MediaData;

            &lt;span class=&quot;kwrd&quot;&gt;if&lt;/span&gt; (mediaData == &lt;span class=&quot;kwrd&quot;&gt;null&lt;/span&gt;)
            {
                &lt;span class=&quot;kwrd&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;kwrd&quot;&gt;null&lt;/span&gt;;
            }

            &lt;span class=&quot;kwrd&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;kwrd&quot;&gt;new&lt;/span&gt; EPiServerBlobImage(virtualPath, mediaData);
        }

        &lt;span class=&quot;kwrd&quot;&gt;public&lt;/span&gt; IPlugin Install(global::ImageResizer.Configuration.Config config)
        {
            config.Plugins.add_plugin(&lt;span class=&quot;kwrd&quot;&gt;this&lt;/span&gt;);

            &lt;span class=&quot;kwrd&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;kwrd&quot;&gt;this&lt;/span&gt;;
        }

        &lt;span class=&quot;kwrd&quot;&gt;public&lt;/span&gt; &lt;span class=&quot;kwrd&quot;&gt;bool&lt;/span&gt; Uninstall(global::ImageResizer.Configuration.Config config)
        {
            config.Plugins.remove_plugin(&lt;span class=&quot;kwrd&quot;&gt;this&lt;/span&gt;);

            &lt;span class=&quot;kwrd&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;kwrd&quot;&gt;true&lt;/span&gt;;
        }
    }

    &lt;span class=&quot;kwrd&quot;&gt;public&lt;/span&gt; &lt;span class=&quot;kwrd&quot;&gt;class&lt;/span&gt; EPiServerBlobImage : IVirtualFile
    {
        &lt;span class=&quot;kwrd&quot;&gt;private&lt;/span&gt; MediaData _mediaData;

        &lt;span class=&quot;kwrd&quot;&gt;public&lt;/span&gt; EPiServerBlobImage(&lt;span class=&quot;kwrd&quot;&gt;string&lt;/span&gt; virtualPath, MediaData mediaData)
        {
            &lt;span class=&quot;kwrd&quot;&gt;this&lt;/span&gt;.VirtualPath = virtualPath;
            &lt;span class=&quot;kwrd&quot;&gt;this&lt;/span&gt;._mediaData = mediaData;
        }

        &lt;span class=&quot;kwrd&quot;&gt;public&lt;/span&gt; Stream Open()
        {
            &lt;span class=&quot;kwrd&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;kwrd&quot;&gt;this&lt;/span&gt;._mediaData.BinaryData.OpenRead();
        }

        &lt;span class=&quot;kwrd&quot;&gt;public&lt;/span&gt; &lt;span class=&quot;kwrd&quot;&gt;string&lt;/span&gt; VirtualPath
        {
            get;
            &lt;span class=&quot;kwrd&quot;&gt;private&lt;/span&gt; set;
        }
    }&lt;/code&gt;&lt;/pre&gt;
  &lt;style type=&quot;text/css&quot;&gt;.csharpcode, .csharpcode pre { font-size: small; color: black; font-family: consolas, &quot;Courier New&quot;, courier, monospace; background-color: #ffffff; /*white-space: pre;*/ } .csharpcode pre { margin: 0em; } .csharpcode .rem { color: #008000; } .csharpcode .kwrd { color: #0000ff; } .csharpcode .str { color: #006080; } .csharpcode .op { color: #0000c0; } .csharpcode .preproc { color: #cc6633; } .csharpcode .asp { background-color: #ffff00; } .csharpcode .html { color: #800000; } .csharpcode .attr { color: #ff0000; } .csharpcode .alt { background-color: #f4f4f4; width: 100%; margin: 0em; } .csharpcode .lnum { color: #606060; } &lt;/style&gt;

  &lt;p&gt;
    &lt;p&gt;Register the plugin in resizer config section like so:&lt;/p&gt;

    &lt;pre class=&quot;language-csharp&quot;&gt;&lt;code&gt;&lt;span class=&quot;kwrd&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;html&quot;&gt;resizer&lt;/span&gt;&lt;span class=&quot;kwrd&quot;&gt;&amp;gt;&lt;/span&gt;
    &lt;span class=&quot;kwrd&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;html&quot;&gt;plugins&lt;/span&gt;&lt;span class=&quot;kwrd&quot;&gt;&amp;gt;&lt;/span&gt;
        &lt;span class=&quot;kwrd&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;html&quot;&gt;add&lt;/span&gt; &lt;span class=&quot;attr&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;kwrd&quot;&gt;=&amp;quot;ImageResizer.EPiServerBlobPlugin&amp;quot;&lt;/span&gt; &lt;span class=&quot;kwrd&quot;&gt;/&amp;gt;&lt;/span&gt;
        ...
    &lt;span class=&quot;kwrd&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&quot;html&quot;&gt;plugins&lt;/span&gt;&lt;span class=&quot;kwrd&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;kwrd&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&quot;html&quot;&gt;resizer&lt;/span&gt;&lt;span class=&quot;kwrd&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
    &lt;style type=&quot;text/css&quot;&gt;.csharpcode, .csharpcode pre { font-size: small; color: black; font-family: consolas, &quot;Courier New&quot;, courier, monospace; background-color: #ffffff; /*white-space: pre;*/ } .csharpcode pre { margin: 0em; } .csharpcode .rem { color: #008000; } .csharpcode .kwrd { color: #0000ff; } .csharpcode .str { color: #006080; } .csharpcode .op { color: #0000c0; } .csharpcode .preproc { color: #cc6633; } .csharpcode .asp { background-color: #ffff00; } .csharpcode .html { color: #800000; } .csharpcode .attr { color: #ff0000; } .csharpcode .alt { background-color: #f4f4f4; width: 100%; margin: 0em; } .csharpcode .lnum { color: #606060; } &lt;/style&gt;&lt;/p&gt;&lt;/p&gt;</description>            <guid>https://world.optimizely.com/blogs/Andre-Hedberg/Dates/2013/12/Get-ImageResizer-to-play-along-with-EPiServer-75/</guid>            <pubDate>Fri, 06 Dec 2013 16:40:00 GMT</pubDate>           <category>Blog post</category></item></channel>
</rss>