Внешняя компонента Image Magick для базовых операций над картинками

06.09.21

Разработка - Разработка внешних компонент

Внешняя компонента Image Magick для базовых операций над картинками. Реализованы функции: Rotate, Flip, Flop, Enhance, Sharpen, Oil, AutoOrient

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
Обработка подключения внешней компоненты
.epf 8,14Kb ver:1.0.1
16 2 500 руб. Купить
:Внешняя компонента Image Magick для х86 систем Windows
.dll 56,00Kb ver:1.0.1
4 2 500 руб. Купить
: :Внешняя компонента Image Magick для х64 систем Windows
.dll 71,50Kb ver:1.0.1
12 2 500 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Весь функционал. кроме AutoOrient, работает через строки Base64, передаваемые в компоненту и возвращаемые из нее.
Реализованы методы:

Rotate (Поворот на определенный градус)
Flip (Отражение по вертикали)
Flop (Отражение по горизонтали)
Enhance (Уменьшение шума)
Sharpen (Увеличение четкости)
Oil (Имитация картины маслом)

И метод AutoOrient, которая работает не через строку Base64, а просто принимает на вход путь к картинке и перезаписывает нормализованное фото.

Подробнее о методах можно почитать в документации Image Magick С++.

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

 

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

// Где:
// ПутьККартинке - путь к картинке на жестком диске
//
// В результате старая картинка будет затерта и поверх записана новая

ПутьККартинке = "E:\cat.jpg";
Компонента.АвтоОриент(ПутьККартинке);

// Где: 
// ДвоичныеДанные - Двоичные данные картинки
// ГрадусПоворота - градус на который необходимо повернуть изображение
// ОбработаннаяКартинка  - двоичные данные в формате Base64
//
// В данном случае рекоммендуется вводить кратные 90 углы, в связи с тем, что при повороте
// на углы не кратные 90 размер картинки увеличивается и появляются пустые поля вокруг нее
// (данный вопрос пока не решил)

КартинкаВBase64 = Base64Строка(ДвоичныеДанные);
ГрадусПоворота = 90;
ОбработаннаяКартинка = Компонента.Повернуть(КартинкаВBase64, ГрадусПоворота);


// Все остальные операции идентичные друг другу. 
// Где:
// ДвоичныеДанные - двоичные данные картинки, 
// ОбработаннаяКартинка - двоичные данные в формате Base64

КартинкаВBase64 = Base64Строка(ДвоичныеДанные);
ОбработаннаяКартинка = Компонента.ОтразитьПоВертикали(КартинкаВBase64);

КартинкаВBase64 = Base64Строка(ДвоичныеДанные);
ОбработаннаяКартинка = Компонента.ОтразитьПоГоризонтали(КартинкаВBase64);

КартинкаВBase64 = Base64Строка(ДвоичныеДанные);
ОбработаннаяКартинка = Компонента.Улучшить(КартинкаВBase64);

КартинкаВBase64 = Base64Строка(ДвоичныеДанные);
ОбработаннаяКартинка = Компонента.Заострить(КартинкаВBase64);

КартинкаВBase64 = Base64Строка(ДвоичныеДанные);
ОбработаннаяКартинка = Компонента.Масло(КартинкаВBase64);

// На всякий пожарный, раскодируем картинку обратно в двоичные данные следующим образом:

КартинкаВДвоичныхДанных = Base64Значение(ОбработаннаяКартинка);

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

Исходники: https://github.com/popeless/addin-image-magick

То что написано в ReadMe на гитхабе:

  • (c) Popeless
  • Добавлены библиотеки Image Magick и несколько методов
  • Лишние методы удалены
  • Библиотеки в команде pragma comments при сборке должны быть в папке, где собирается библиотека SampleAddIn.lib
  • Библиотеки и хедеры взяты из установщика Image Magick для Windows
  • Эту библиотеку необходимо компилировать в Release режиме
  •  
  • Спасибо Infactum за шаблон!

В файлах немного описал, как быстрее скомпилировать свои библиотеки. Компиляция под платформы не являющиеся Windows - не рассматривал.

На эту компоненту вдохновило видео канала "Веселый 1С"

Половину работы сделал за меня шаблон, предоставленный одним из участников сообщества, за что ему большая благодарность. Ссылка на шаблон и собственно гит.

 

P.S. Если вы найдете методы, которые было бы интересно реализовать, или вы предложите мне альтернативу моему коду, для улучшения реализации функционала - прошу вас не стесняться и писать мне в личные сообщения, либо в комментарии.

Вступайте в нашу телеграмм-группу Инфостарт

обработка компонента imagemagick картинки фото

См. также

Работа с интерфейсом Анализ учета Мониторинг 1С:Предприятие 8 1С 8.3 1C:Бухгалтерия 1С:Бухгалтерия 3.0 1С:Библиотека стандартных подсистем 1С:ERP Управление предприятием 2 1С:Управление холдингом 1С:Зарплата и Управление Персоналом 3.x 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Управление торговлей 11 Платные (руб)

Создайте свой функциональный интерфейс в любой конфигурации 1С с помощью расширения Infostart Dashboard. Настраивайте панели виджетов с метриками, индикаторами и показателями на начальном экране. Узнайте возможность внедрения подсистемы у себя в конфигурации с помощью бесплатной обработки "Анализ внедрения подсистемы 1С Infostart Dashboard"!

29280 руб.

27.03.2025    70855    42    29    

56

Разработка Инструментарий разработчика Работа с интерфейсом Адаптация типовых решений Нейросети 1C:Бухгалтерия 1C:ERP 1С:ЗУП 1С:КА 1С:УНФ 1С:УТ 1С:Розница 1С:ДО 1С:ERP Управление предприятием 2 Платные (руб)

Разработка "Дизайнер форм 1С" реализована в виде расширения 1С и является универсальным инструментом для разработки прототипа форм с целью демонстраций, технических заданий и т.д. Без участия разработчика с возможностью экспорта в файл внешней обработки и генерации формы используя искусственный интеллект.

36600 руб.

28.08.2025    5716    2    2    

5

Консолидация данных Работа с интерфейсом Программист Пользователь 1С:Предприятие 8 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 1C:ERP Узбекистан Беларусь Кыргызстан Россия Казахстан Платные (руб)

Знакомая ситуация? Пользователи, особенно менеджеры, уверены: отборов много не бывает. Идут пожелания добавить в форму списка еще один быстрый фильтр, еще два, еще пять... В итоге интерфейс превращается в нагромождение полей отбора, а потребность в «самом главном» отборе, который «вот прямо сейчас нужен», все равно не закрыта. Универсальное расширение, которое решает эту проблему элегантно и технологично. С его помощью в любую форму списка можно легко добавить панель настраиваемых кнопок-закладок, каждая из которых применяет сложный фильтр-запрос, а так же показывает актуальное количество элементов в реальном времени.

6088 руб.

17.10.2025    1451    3    0    

2

Работа с интерфейсом Системный администратор Программист 1С:Предприятие 8 1C:Бухгалтерия Платные (руб)

Расширение «Динамическое управление доступом к элементам форм объектов 1С8» предназначен для обеспечения возможности оперативного управления видимостью и доступностью элементов форм документов и справочников продуктов фирмы «1С» «1С:Предприятие 8». Решение универсальное, встраивается в любую конфигурацию с минимальными доработками, что позволяет без проблем обновлять типовые решения.

6100 руб.

14.01.2016    59355    21    25    

46

Разработка внешних компонент POS терминал Рабочее место Розничная торговля Программист Пользователь 1С:Предприятие 8 1С:Комплексная автоматизация 1.х 1С:Управление торговлей 10 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Розничная и сетевая торговля (FMCG) Рестораны, кафе и фаст-фуд Реклама, PR и маркетинг Управленческий учет Платные (руб)

Медиадисплей покупателя может отображать текущую покупку на кассовом месте, показывать видеорекламу, баннеры, во время простоя разворачивать рекламу на весь экран. Экран можно использовать в качестве графического меню-борда в кафе и видеовывески. В качестве устройства отображения можно использовать Android-планшеты, смарт-телевизоры с Android, мониторы или проекторы под управлением Windows или Linux-компьютера. Linux-версия успешно запускается на одноплатных компьютерах Raspberri Pi и Orange Pi. Настраивается ЛЮБОЙ ДИЗАЙН экрана при помощи встроенного графического редактора! Решение можно масштабировать от одного экрана до тысяч экранов с централизованным управлением.

18300 руб.

30.05.2017    56356    10    71    

47

Работа с интерфейсом Программист 1С:Предприятие 8 1C:Бухгалтерия 1С:ERP Управление предприятием 2 Платные (руб)

Обработка предназначена для создания и управления дашбордами (виджетами) в 1С.

5246 руб.

29.06.2020    23732    33    6    

52

Разработка внешних компонент Программист 1С:Предприятие 8 1C:Бухгалтерия Платные (руб)

Позволяет автоматизировать работу с картинками. С помощью компоненты можно измерять размер изображений, поворачивать их, наносить водяные знаки, конвертировать из одного формата в другой. Будет очень полезна для интернет-магазинов и всех, кому постоянно требуется работать с различными графическими форматами. Выполнена по технологии NativeAPI. Работает с форматами: jpg (jpeg), png, bmp, gif, tif

5094 руб.

02.09.2010    81194    75    280    

193

Разработка внешних компонент Программист 1С:Предприятие 8 1C:Бухгалтерия 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия 3.0 Платные (руб)

Внешняя компонента позволяет работать c TWAIN-совместимым оборудованием (сканерами, камерами) . Полностью совместима со стандартной TWAIN-компонентой из БСП и может применяться как ее замена без изменения вызовов, при этом может работать с 64-разрядной платформой, а так же имеет расширенную функциональность, например, сохранение результата непосредственно в PDF без использования сторонних утилит. Прекрасно работает на сервере, тонком клиенте и веб-клиенте (проверена работа в браузерах Google Chrome, Mozilla Firefox и Microsoft Internet Explorer).

5084 руб.

12.05.2020    32780    144    100    

100
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Steelvan 315 30.08.21 10:49 Сейчас в теме
Хм, вот думаю и гадаю, зачем на гитхабе делать описание на вражеском языке ?
Кроме русскоязычных кто-то еще заинтересуется данной разработкой ?
2. ldmonster 99 30.08.21 13:05 Сейчас в теме
В перспективе планировал расписать на русском в данной статье. При разработке стараюсь выдерживать единый стиль языка и текста.
3. SLV66 20.01.22 10:24 Сейчас в теме
Добрый день.
Нельзя ли во временном хранилище сделать автоориентацию. Без использования сохранения на диск?
4. ldmonster 99 20.01.22 10:49 Сейчас в теме
(3) Здравствуйте.

Эта функция не имеет смысла во временном хранилище. Во всяком случае не для моих нужд.

У меня была проблема, что при скачивании с амазон клауд были битые параметры у файлов. В данном случае компонента именно это и делает.

На гитхабе у меня выложены все исходники, можете переделать если необходимо. Код полностью открыт.
5. SLV66 21.01.22 08:12 Сейчас в теме
Скачал для изучения компоненту 64 и обработку. Указываю в путь до компоненты - пуск.
Не удалось подключить компоненту
{ВнешняяОбработка.ТестВКImageMagickAddin.Форма.Форма.Форма(5)}: ВызватьИсключение "Не удалось подключить компоненту";
6. ldmonster 99 21.01.22 09:41 Сейчас в теме
(5) Попробуйте изучить как работают компоненты и как они подключаются. Скорее всего у вас где-то ошибка.

Компонента это dll файл в данном случае, который отвечает на api запрос от 1с. Я приложил исходники, чтобы любой мог изучить вопрос и скомпилировать под любую систему (благодаря шаблону это реально)
7. SLV66 21.01.22 09:47 Сейчас в теме
Дело в том что я ваш пример взял а он не рабочий? Полагаю что тестовый пример должен из "коробки" работать.
8. ldmonster 99 21.01.22 10:27 Сейчас в теме
(7) если вы не смогли подключить компоненту, это не значит, что пример не рабочий.
В отличие от тех, кто обычно выкладывает компоненты я приложил исходники и инструкции по компиляции. Если вы понимаете в этом что-то то всегда можете посмотреть внутрь и убедиться.
Для начала повторюсь, изучите как работают компоненты, и что требуется для взаимодействия с image magick.
Не стоит делать поспешных выводов, основываясь на подобной ошибке. Постарайтесь понять в связи с чем на вашей машине происходит данная ошибка.

P.s. я не продаю техническую поддержку как многие, кто продают свои решения. Просто выложил скомпилированные исходники. Если вы хотите полноценного сервиса, можете заключить договор с компанией, которая скомпилирует и установит вам самостоятельно.
thelastairbender; +1 Ответить
Для отправки сообщения требуется регистрация/авторизация