<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom"><title type="text">Blog posts by André Hedberg</title><link href="http://world.optimizely.com" /><updated>2015-12-22T11:10:24.0000000Z</updated><id>https://world.optimizely.com/blogs/Andre-Hedberg/</id> <generator uri="http://world.optimizely.com" version="2.0">Optimizely World</generator> <entry><title>ImageResizer with EPiServer - Revisited</title><link href="https://world.optimizely.com/blogs/Andre-Hedberg/Dates/2015/12/imageresizer-with-episerver---revisited/" /><id>&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;</id><updated>2015-12-22T11:10:24.0000000Z</updated><summary type="html">Blog post</summary></entry> <entry><title>Get ImageResizer to play along with EPiServer 7.5</title><link href="https://world.optimizely.com/blogs/Andre-Hedberg/Dates/2013/12/Get-ImageResizer-to-play-along-with-EPiServer-75/" /><id>&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;</id><updated>2013-12-06T16:40:00.0000000Z</updated><summary type="html">Blog post</summary></entry></feed>