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

06.09.21

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

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

Скачать файл

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

Наименование SM По подписке [?] Купить один файл
Обработка подключения внешней компоненты
.epf 8,14Kb
14
14
1 SM
Скачать Купить за 1 850 руб.
:Внешняя компонента Image Magick для х86 систем Windows
.dll 56,00Kb
4
4
1 SM
Скачать Купить за 1 850 руб.
: :Внешняя компонента Image Magick для х64 систем Windows
.dll 71,50Kb
9
9
1 SM
Скачать Купить за 1 850 руб.

Весь функционал. кроме 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С v8.3 Конфигурации 1cv8 Платные (руб)

Внешняя компонента в виде библиотеки (.dll файл), позволяющая посылать команды и получать ответы по протоколу WebSocket из 1С. Компонента работает только на стороне "клиента".

4440 руб.

22.06.2020    17341    16    33    

21

Разработка внешних компонент Программист Платформа 1С v8.3 Конфигурации 1cv8 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия 3.0 Платные (руб)

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

3000 руб.

12.05.2020    27060    135    98    

87

Разработка внешних компонент Программист Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

Внешняя компонента позволяет печатать PDF файлы непосредственно из 1С, не используя при этом сторонних программ. Прекрасно работает на сервере, тонком клиенте и веб-клиенте. Основана на проекте PDFium из состава проекта Chromium/Chrome

1500 руб.

17.09.2018    35793    110    127    

113

Работа с интерфейсом Программист Платформа 1С v8.3 Конфигурации 1cv8 1С:ERP Управление предприятием 2 Платные (руб)

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

2400 руб.

29.06.2020    17565    24    6    

38

Разработка внешних компонент Программист Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

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

3600 руб.

02.09.2010    76594    71    255    

189

Разработка внешних компонент Телефония, SIP Программист Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

Внешняя компонента выполнена по технологии Native API для 1С 8.х, обеспечивает доступ к программным АТС Asterisk (FreePBX, Elastix) через AMI интерфейс. Через него можно управлять многими функциями Asterisk (определение номеров, перевод звонков, набор телефона и т. д.)

2400 руб.

04.05.2018    45897    118    66    

63
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Steelvan 305 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 Ответить
Оставьте свое сообщение