2015-01-14 3 views
2

сейчас я использую Dianoga (https://github.com/kamsar/Dianoga) для сжатия изображения. Этот инструмент предназначен для файлов png и jpg/jpeg, а файл PNG работает нормально. Но, если я загружу JPG-файл, ящик для загрузки замерзает, как скриншот.

enter image description here

Это исполнение линии.Sitecore 'getMediaStream' не работает

var jpegtran = Process.Start(ToolPath, " -optimize -copy none -progressive -outfile \"{0}\" \"{0}\"".FormatWith(tempFilePath)); 



Если изменить код как,

var jpegtran = Process.Start(ToolPath, " -optimize -copy none -progressive -outfile \"{1}\" \"{0}\"".FormatWith(tempFilePath)); 

JPG файл обновлен, но не процесс сжатия. Журнал говорит,

"ERROR Не удалось запустить трубопровод 'getMediaStream' для '/ Sitecore/медиа-библиотека/Images/спутниковым-westtibet. Исходные данные СМИ будут использоваться"



Это это мой файл web.config в/App_Config/Include /.

<?xml version="1.0" encoding="UTF-8"?> 
    <configuration xmlns:patch="http://www.sitecore.net/xmlconfig/"> 
     <sitecore> 
      <processors> 
       <attachFile argsType="Sitecore.Pipelines.Attach.AttachArgs"> 
        <processor mode="on" type="Validations.Attach.ImageAttachMaxSize, Custom.Validations" patch:before="processor [@type='Sitecore.Pipelines.Attach.CheckSize,Sitecore.Kernel']"> 
         <restrictedExtensions hint="list"> 
          <extension>.jpg</extension> 
          <extension>.jepg</extension> 
          <extension>.png</extension> 
          <extension>.bmp</extension> 
         </restrictedExtensions> 
        </processor> 
       </attachFile> 
       <uiUpload> 
        <processor mode="on" type="Validations.Upload.ImageUploadMaxSize, Custom.Validations" patch:before="processor [@type='Sitecore.Pipelines.Upload.CheckSize, Sitecore.Kernel']"> 
         <restrictedExtensions hint="list"> 
          <extension>.jpg</extension> 
          <extension>.jepg</extension> 
          <extension>.png</extension> 
          <extension>.bmp</extension> 
        </restrictedExtensions> 
       </processor> 
      </uiUpload> 
     </processors> 

     <pipelines> 
      <getMediaStream> 
       <processor type="Validations.Compression.ImageCompression, Custom.Validations" /> 
      </getMediaStream> 
     </pipelines> 
     <settings> 
      <setting name="Media.MaxImageSizeInDatabase" value="600KB" />  
      <setting name="Media.Resizing.Quality" value="72" /> 
     </settings> 
    </sitecore> 
</configuration> 



Ошибка с пустыми значениями ширины и высоты enter image description here

+1

Первая строка выполнения была правильной. Вы скопировали папку 'Dianoga Tools' в корневой каталог вашего сайта? Я предполагаю, что вы добавили код в свой собственный проект (в отличие от использования одного из Github). Добавьте в DLL в процессор также, например. '' – jammykam

+0

Привет @jammykam снова, я скопировал каталог ** Dianoga Tools **. Вот почему сжатие PNG работает. Как вы уже упоминали, я добавил файл dll (Custom.Validations) в папку bin **, но он не работает **, то же самое замораживание. Возможно, вы знаете, что я хочу реализовать. Я хотел бы объединить ограничение загрузки с сжатием изображения. Итак, я добавил источники Dianoga в процесс ограничения загрузки. Всего только один проект. Это источник ** JpegOptimizer.cs ** от Dianoga, http://codepad.org/krYda4yA – Jay

+0

2 работают независимо, поскольку Dianoga работает на конвейере 'getMediaStream', он работает независимо от процесса загрузки (то есть, когда средства массовой информации). Действительно ли изображение загружается успешно? Если да, работает ли оптимизатор при просмотре изображений с лицевой стороны? – jammykam

ответ

0

Наконец зафиксировали проблему. Проблема заключалась в том, что мне пришлось «разблокировать» файл jpegtran.exe. Вот и все.

enter image description here

+0

Doh! Вероятно, почему у меня не было проблемы с использованием NuGet, так как она не представила ту же проблему. Рад, что он исправлен! – jammykam

Смежные вопросы