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

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

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

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

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

—-

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

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

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

4 Comments

  1. it@contlog.ru

    На windows vista и выше это можно делать и без компонент.

    Reply
  2. 7OH

    (1) it@contlog.ru,

    Это хорошо. Но пока ещё не у всех ВИСТА и выше.

    Многие и компоненты пишут на C#, а потом, чтобы запустить обработку, надо ставить фреймворк.

    Стараюсь писать на С++ или так, чтобы работало с минимальными затратами.

    Reply
  3. 1st

    После обработки в УТ 10.3, не открывается номенклатура: выходит ошибка:

    {Справочник.Номенклатура.Форма.ФормаЭлемента.Форма(1154)}: Ошибка при установке значения атрибута контекста (Картинка): Несоответствие типов

    Проблема в том, что в «хранилище» должно быть значение типа «Картинка», а не «ДвоичныеДанные».

    Нужно заменить в процедуре:

    Процедура ОбработатьФайлы()

    стр.119:

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

    на

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

    и ошибки не будет.

    Если уже успели сделать обработку и все испортили, то можно сделать повторную обработку (с исправлениями), но без флага «Не принимать увеличение размера», и с размером превышения 1байт либо минимальным из полученных предыдущей обработкой. Можно также написать простую обработку получения значения хранилища, замены типа, и записи значения — проблема же только в типе данных.

    Reply
  4. 7OH

    В хранилище могут быть и, допустим, XLS файлы, потому там всегда были двоичные данные.

    Возможно в УТ изменили нормальную логику вещей, подправьте — код открыт же.

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *