сейчас я использую Dianoga (https://github.com/kamsar/Dianoga) для сжатия изображения. Этот инструмент предназначен для файлов png и jpg/jpeg, а файл PNG работает нормально. Но, если я загружу JPG-файл, ящик для загрузки замерзает, как скриншот.
Это исполнение линии.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>
Ошибка с пустыми значениями ширины и высоты
Первая строка выполнения была правильной. Вы скопировали папку 'Dianoga Tools' в корневой каталог вашего сайта? Я предполагаю, что вы добавили код в свой собственный проект (в отличие от использования одного из Github). Добавьте в DLL в процессор также, например. ' ' –
jammykam
Привет @jammykam снова, я скопировал каталог ** Dianoga Tools **. Вот почему сжатие PNG работает. Как вы уже упоминали, я добавил файл dll (Custom.Validations) в папку bin **, но он не работает **, то же самое замораживание. Возможно, вы знаете, что я хочу реализовать. Я хотел бы объединить ограничение загрузки с сжатием изображения. Итак, я добавил источники Dianoga в процесс ограничения загрузки. Всего только один проект. Это источник ** JpegOptimizer.cs ** от Dianoga, http://codepad.org/krYda4yA – Jay
2 работают независимо, поскольку Dianoga работает на конвейере 'getMediaStream', он работает независимо от процесса загрузки (то есть, когда средства массовой информации). Действительно ли изображение загружается успешно? Если да, работает ли оптимизатор при просмотре изображений с лицевой стороны? – jammykam