gifts2017

Сжатие и обрезка картинок

Опубликовал Семён Павлюков (7OH) в раздел Администрирование - Чистка базы

Сжатие и обрезка картинок хранилища


Функционал реализован с использованием компоненты GFLAx

Скачано тут и хорошо переработано.

Инсталлятор необходимых компонент внутри обработки и запускается по кнопке.

----

Отличия от оригинала:

  • Наличие инсталлятора компоненты
  • насильное сохранение в JPG в независимости от текущего формата хранимой картинки
  • возможность отказаться от увеличения размера файла
  • возможность изменить DPI - хорошо влияет на размер
  • возможноть уменьшить разрешение - тоже хорошо влияет на размер
  • возможность обработать картинку с ручным выбором

Размер картинки определяется по бОльшей стороне и обрезается только, если один из размеров превышает указанный в настройках.

Скачать файлы

Наименование Файл Версия Размер Кол. Скачив.
Обработка и компонента
.epf 872,32Kb
21.08.14
25
.epf 1.0 872,32Kb 25 Скачать
Обработка и компонента (2)
.epf 872,38Kb
04.11.16
1
.epf 872,38Kb 1 Скачать

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Станислав Коляда (it@contlog.ru) 22.08.14 00:22
На windows vista и выше это можно делать и без компонент.
2. Семён Павлюков (7OH) 22.08.14 11:21
(1) it@contlog.ru,
Это хорошо. Но пока ещё не у всех ВИСТА и выше.
Многие и компоненты пишут на C#, а потом, чтобы запустить обработку, надо ставить фреймворк.
Стараюсь писать на С++ или так, чтобы работало с минимальными затратами.
3. Семен (1st) 05.10.14 21:22
После обработки в УТ 10.3, не открывается номенклатура: выходит ошибка:
{Справочник.Номенклатура.Форма.ФормаЭлемента.Форма(1154)}: Ошибка при установке значения атрибута контекста (Картинка): Несоответствие типов

Проблема в том, что в "хранилище" должно быть значение типа "Картинка", а не "ДвоичныеДанные".
Нужно заменить в процедуре:
Процедура ОбработатьФайлы()

стр.119:
			ИзменитьРеквизитОбъекта(Выборка.Ссылка, Файл, Размер_ПослеСжатия);

на
			Картинка = Новый Картинка(Файл, Ложь); 
			ИзменитьРеквизитОбъекта(Выборка.Ссылка, Картинка, Размер_ПослеСжатия);

и ошибки не будет.
Если уже успели сделать обработку и все испортили, то можно сделать повторную обработку (с исправлениями), но без флага "Не принимать увеличение размера", и с размером превышения 1байт либо минимальным из полученных предыдущей обработкой. Можно также написать простую обработку получения значения хранилища, замены типа, и записи значения - проблема же только в типе данных.
4. Семён Павлюков (7OH) 05.10.14 22:13
В хранилище могут быть и, допустим, XLS файлы, потому там всегда были двоичные данные.
Возможно в УТ изменили нормальную логику вещей, подправьте - код открыт же.
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа