2017-08-11 3 views
1

J'essaye de configurer un site EPiServer 9 avec ImageProcessor mais je n'arrive pas à le faire fonctionner.ImageProcessor avec EPiServer ne fonctionne pas

J'ai installé les paquets NuGet suivants:

ImageProcessor 
ImageProcessor.Web 
ImageProcessor.Web.Config 

Avec rien de configuration par défaut se produit. Avec la configuration personnalisée suivante dans 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> 

... il semble que ImageProcessor tente de redimensionner mon image, mais je reçois ci-dessous erreur ...

[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 

... lorsque vous essayez de redimensionner une image à 200px de largeur comme ceci:

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

Quelqu'un a des suggestions sur la façon dont je peux obtenir ce travail? L'image montre que la normale sans le paramètre largeur:

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

+0

Il y a un bon blog sur l'obtention de ImageProcessor travailler avec Episerver: https: // monde .episerver.com/blogs/vincent-baaij/dates/2017/10/episerver-et-imageprocesseur-more-choice-for-developers-and-designers/ –

Répondre

3

Dans les projets où j'ai utilisé avec EPiServer ImageProcessor J'ai toujours dû créer ma propre IImageService.

Quelque chose comme ceci:

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

Le ImageFile utilisé est le type de média dans votre projet qui hérite de EPiServer.Core.ImageData.

Ensuite, vous devez l'utiliser dans web.config ainsi, il suffit de remplacer toute la section avec cette configuration:

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

Nice! Jamais vu quelqu'un utilisant ImageProcessor avec EPiServer avant. –

+0

J'ai essayé d'ajouter mon propre IImageService comme votre exampel. Où et comment dois-je l'ajouter à mon web.config? Pourriez-vous s'il vous plaît ajouter un exemple de vos lignes ajoutées dans web.config? Merci de votre aide! – iixi

+0

J'ai mis à jour ma réponse avec la configuration. S'il te plait accepte-le. :) – Andreas