Перейти к содержанию
Fire Monkey от А до Я
  • 0

Работа с изображениями


Tumaso

Вопрос

Подскажите, какая библиотека поддерживает работу с изображениями при компиляции консольного приложения под Linux ? (использую Rio)

Суть проблемы в том, что на стороне Linux приложение принимает файл в формате jpg, после этого его нужно определенным образом сжать и записать обработанное изображение локально в Linux. В Windows/macOS/Android/iOS из коробки есть TBitmapCodecManager и TBitmapSurface, а вот Linux они не поддерживают.

Ссылка на комментарий

Рекомендуемые сообщения

  • 0

Как вариант - можете использовать внешнее приложение https://ffmpeg.org/ . И вроде можно использовать его библиотеки в своем приложении (но тут не скажу, не пробовал).

Ссылка на комментарий
  • 0

@Евгений Корепов

Я пару лет назад работал с делфовской оберткой www.delphiffmpeg.com для ffmpeg, делал приложение для windows/mac os. Там все работает идеально, можно извращаться (в хорошем смысле этого слова) не только с изображениями, но и видео и аудио. Но поддержки linux в этой библиотеке (delphiffmpeg.com) нет до сих пор.

Вообще сейчас пытаюсь адаптировать Vampyre Imaging Library для использования в Rio, эта текущая версия библиотеки во freepascal поддерживает Linux , а в делфи нет. Проблема в том, что разработчик использует собственный вариант ZLib, а также использует LongInt, у которого размерность на разных системах разная (в частности в 64-битном linux он 8ми байтовый).

 

Ссылка на комментарий
  • 0
1 час назад, Tumaso сказал:

@Евгений Корепов

Я пару лет назад работал с делфовской оберткой www.delphiffmpeg.com для ffmpeg, делал приложение для windows/mac os. Там все работает идеально, можно извращаться (в хорошем смысле этого слова) не только с изображениями, но и видео и аудио. Но поддержки linux в этой библиотеке (delphiffmpeg.com) нет до сих пор.

Вообще сейчас пытаюсь адаптировать Vampyre Imaging Library для использования в Rio, эта текущая версия библиотеки во freepascal поддерживает Linux , а в делфи нет. Проблема в том, что разработчик использует собственный вариант ZLib, а также использует LongInt, у которого размерность на разных системах разная (в частности в 64-битном linux он 8ми байтовый).

 

Можно просто вызывать как внешнее приложение с нужными параметрами. Я к примеру на сервере Asterisk на лету пережимаю wav в ogg таким образом - все работает превосходно. 

Если не хотите использовать внешнее приложение, то у ffmpeg отличная документация, в том числе и по работе с вызовами функций из библиотек, так что дополнительная прокладка в виде компонента может и не понадобиться. В линуксе же можно подключать библиотеки so, по аналогии с windows dll ? Тут мои знания и опыт очень ограничены, но предполагаю что нет ничего не возможного )))

Ссылка на комментарий
  • 0

Прошло почти 5 лет с момента начала этой темы, а проблема всё та же 🙂

Сейчас использую Delphi 12 с 1 патчем, но работать с FMX.Graphics в консольном приложении на linux-машине без установленной графической оболочки так и не получается (компилируется, но при попытках использования работы с графикой валятся эксепшены и валится само приложение).
При этом FMXLinux установлен, рекомендуемые либы gtk на линуксе также установлены.
Использование внешнего приложения понятно, но задача - использовать исключительно внутренний код.

Может есть у кого успешное решение аналогичной задачи?

Ссылка на комментарий

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...