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

06.09.21

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

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

Скачать файл

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

Наименование По подписке [?] Купить один файл
Обработка подключения внешней компоненты
.epf 8,14Kb ver:1.0.1
16
16 Скачать (1 SM) Купить за 1 850 руб.
:Внешняя компонента Image Magick для х86 систем Windows
.dll 56,00Kb ver:1.0.1
4
4 Скачать (1 SM) Купить за 1 850 руб.
: :Внешняя компонента Image Magick для х64 систем Windows
.dll 71,50Kb ver:1.0.1
11
11 Скачать (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 Управляемые формы 1C:Бухгалтерия Платные (руб)

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

5000 руб.

14.01.2016    55771    17    23    

43

Работа с интерфейсом Рабочее место Платформа 1С v8.3 Управляемые формы 1C:Бухгалтерия Платные (руб)

Универсальный редактор картинок 1С предназначен для обработки изображений в режиме «Предприятие», с возможностью рисовать на них. Поддерживается работа как в обычных формах (толстый клиент) так и на управляемых формах (тонкий клиент). Обработка позволяет редактировать как картинки, хранимые в базе, так и графические файлы с диска на файловой системе. Помимо базовых функций (изменение размеров, преобразование формата, обрезание картинки, повороты и т.п.) – редактор имеет богатый набор инструментов для рисования. Доступна функция вставки изображения из буфера обмена. Объект может быть использован: на стороне клиента, на стороне сервера, из внешнего соединения. Обработка будет особенно полезна тем, кто вносит картинки в базу (изображения номенклатуры, фотографии физических лиц и т.п.). Функционал реализуется с использованием JavaScript и бесплатного ПО ImageMagick (без использования внешних компонент).

6000 руб.

16.01.2015    64154    45    60    

83

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

Внешняя компонента, позволяющая посылать команды и получать ответы по GraphQL протоколу из 1С.Может быть использована при интеграции. В 1С работает на стороне "клиента".

4600 руб.

27.06.2023    3804    3    0    

5

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

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

2400 руб.

29.06.2020    20105    28    6    

44

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

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

3600 руб.

02.09.2010    77770    73    257    

191

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

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

1500 руб.

17.09.2018    37125    115    128    

116

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

Внешняя компонента для конвертации PDF файлов в картинки без использования дополнительных программ. Работает на сервере и в тонком клиенте.

2400 руб.

25.06.2024    1303    3    4    

3

Разработка внешних компонент Системный администратор Программист Платформа 1С v7.7 Платформа 1С v8.3 Платформа 1C v8.2 Платформа 1С v8.1 Россия Платные (руб)

Аддон "Структура Обмена" (ExchangeStruc) - это компонента, которая обеспечивает доступ к разделяемым процессом структурам, аналогичным структурам 1С. Обеспечивает прозрачную передачу данных примитивных типов, в том числе Двоичных данных, в режиме Реального времени между разными контекстами (формами) или потоками одного процесса. В перспективе функционал будет расширен для обмена между процессами, даже разных версий платформ. Совместим с версиями Windows рабочих станций и серверов, с платформами 1С разных версий и релизов в режиме Native начиная с 8.2, и в режиме COM начиная с версий 7.7. По скорости чтения и записи лишь немногим уступает стандартной структуре 1С. НОВОЕ: Добавлен функционал регистрации компоненты COM в качестве OLE Auto (COMОбъект) для поддержки её работы в серверах старых версий 1С: 8.0 и 8.1, где работа с компонентами исключена. Теперь можно коммуникацию с Фоновыми заданиями на этих версиях проводить.

7200 руб.

19.04.2023    5405    1    0    

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