2017-08-11 101 views
1

我想配置EPiServer 9站點ImageProcessor,但無法讓它工作。ImageProcessor與EPiServer不起作用

我已經安裝了以下的NuGet包:

ImageProcessor 
ImageProcessor.Web 
ImageProcessor.Web.Config 

在默認配置下沒有任何反應。在配置/ imageprocessor /的security.config以下的自定義配置...

<security> 
    <services> 
    <service name="CloudImageService" type="ImageProcessor.Web.Services.CloudImageService, ImageProcessor.Web"> 
     <settings> 
     <setting key="MaxBytes" value="8194304" /> 
     <setting key="Timeout" value="30000" /> 
     <setting key="Host" value="http://site.local/globalassets/"/> 
     </settings> 
    </service> 
    <service prefix="remote.axd" name="RemoteImageService" type="ImageProcessor.Web.Services.RemoteImageService, ImageProcessor.Web"> 
     <settings> 
     <setting key="MaxBytes" value="4194304" /> 
     <setting key="Timeout" value="3000" /> 
     <setting key="Protocol" value="http" /> 
     </settings> 
     <whitelist> 
     </whitelist> 
    </service> 
    </services> 
</security> 

...好像ImageProcessor試圖調整自己的形象,但我得到以下錯誤...

[ImageFormatException: Input stream is not a supported format.] 
    ImageProcessor.ImageFactory.Load(Stream stream) +523 
    ImageProcessor.Web.HttpModules.<ProcessImageAsync>d__34.MoveNext() +3308 
    System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() +31 
    System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) +62 
    System.Web.TaskAsyncHelper.EndTask(IAsyncResult ar) +64 
    System.Web.AsyncEventExecutionStep.OnAsyncEventCompletion(IAsyncResult ar) +162 

...試圖將圖像調整到200像素寬度像這樣的時候:

http://site.local/globalassets/sample_image.jpg?width=200

任何人有我如何能得到這個工作有什麼建議?該圖像顯示沒有寬度參數正常:

http://site.local/globalassets/sample_image.jpg

+0

上有越來越ImageProcessor帶有EPiServer工作一個很好的博客文章:https://開頭世界.episerver.com/blogs/vincent-baaij/dates/2017/10/episerver-and-imageprocessor-more-choice-for-developers-and-designers/ –

回答

3

在我使用EPiServer與ImageProcessor我一直有創建自己的IImageService項目。

事情是這樣的:

https://gist.github.com/andreas-cloudnine/34dc468205a230f0579585db17aa1593

使用的鏡像文件是在項目中的媒體類型,從EPiServer.Core.ImageData繼承。

然後,你必須在web.config中使用它爲好,只是這種配置更換整個節:

<security> 
    <services> 
    <service name="EPiServerImageService" type="YourSite.EPiServerImageService, YourSite" /> 
</services> 
</security> 
+0

不錯!以前從未見過任何使用ImageProcessor和EPiServer的人。 –

+0

我試着添加我自己的IImageService,就像你的exampel。在哪裏以及如何將它添加到我的web.config中?你能否在web.config中添加你添加的行的例子?謝謝你的幫助! – iixi

+0

我已經用配置更新了我的答案。請接受它。 :) – Andreas