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

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

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

В наличии

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

Категория:

Описание

Весь функционал. кроме 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. Если вы найдете методы, которые было бы интересно реализовать, или вы предложите мне альтернативу моему коду, для улучшения реализации функционала — прошу вас не стесняться и писать мне в личные сообщения, либо в комментарии.

has been added to your cart:
Оформление заказа