Я пытаюсь (в коде) взять файл изображения и применить к нему трехмерные преобразования (думаю: перспектива).
Приложение, над которым я работаю, написано на C #, и я уже посмотрел на MSDN информация на перекос / поворот изображения. К сожалению, этого недостаточно для контроля — мне нужны функциональные возможности, предлагаемые инструментом «Перспектива», который предлагает GIMP / Photoshop.
Я уже использую P / Invoke для вызова следующих C ++ DLL (вытащил их из папки GIMP / bin) для других функций изображения:
[DllImport("libgobject-2.0-0.dll", SetLastError = true)]
[DllImport("librsvg-2-2.dll", SetLastError = true)]
[DllImport("libgdk_pixbuf-2.0-0.dll", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Ansi)]
Этот подход, кажется, хорошо работает для того, что мне нужно сделать (растеризация векторного изображения), и он хранит весь код внутри приложения (я бы предпочел не идти по пути командной строки — я знаю, что GIMP может быть написан с помощью сценариев, но это своего рода последнее средство прямо сейчас).
Я хотел бы выяснить способ использования этих библиотек (libgdk-pixbuf-2.0, libgobject) и других, при необходимости, для выполнения трехмерных преобразований, которые мне нужно сделать.
У кого-нибудь есть предложения? Я открыт для других идей, но мне действительно нравится идея использовать эти библиотеки с открытым исходным кодом, чтобы получить работу.
Открытое резюме имеет warpPerspective функция, которая точно соответствует вашим потребностям.
Для работы в C # вы могли бы рассмотреть Emgu.cv Оболочка C # для OpenCV.
Других решений пока нет …