QML как сделать эффект для изображения - PullRequest
0 голосов
/ 14 декабря 2018

Есть ли в QML способ визуализации вывода эффекта (например, Fastblur) на внешнее изображение?Я хотел бы использовать это в сочетании с видеовыходом для чего-то вроде фильтров Snapchat в реальном времени.

В моем приложении камера подает видеовыход, который подает на выход эффекта, но, кажется, нетAPI для рендеринга эффекта на изображение.Компонент камеры imageCapture захватывает кадр непосредственно с камеры до применения эффекта.В компоненте эффекта нет метода для его визуализации во внешнее изображение.

Есть ли способ сделать это?

1 Ответ

0 голосов
/ 15 декабря 2018

Существует метод grabToImage(), который доступен для каждого визуального элемента QML, и он также работает для QtGraphicalEffects.

Это не очень эффективно, но в большинствеслучаев будет достаточно.Обратите внимание, что он будет сохранять отдельные изображения, но он не будет использоваться для видео, и хотя сам Qt может внутренне кодировать видео, он не предлагает ничего с точки зрения кодирования видео отдельных кадров в качестве общедоступного API, так что если вы хотитечтобы сохранить вывод эффекта в виде видео, вам нужно будет углубиться в граф сцены, чтобы реализовать более эффективный метод захвата кадров, и использовать стороннюю библиотеку для кодирования кадров в видео.

...