Доброго времени суток!У меня, как выяснилось, весьма нетривиальная задача. Нужно под Ubuntu 14 написать приложение, которое автоматически создает графический файл (коллаж), включающий в себя фотографии и текстовые подписи. Сам коллаж я вполне успешно делаю на OpenCV. Но здесь встают следующие ограничения:
- надписи должны быть на русском языке;
- приложение должно быть консольным (должно работать без "иксов" в виде демона и запускаться через init.d).
Проблема началась тогда, когда обнаружилось, что OpenCV (как это ни странно) не дружит с UTF8, а следовательно, и с русским языком. Эту ветку развития пришлось забросить.
Тогда я пошел в обход, сделал проект в Qt5 и воспользовался классами QImage и QPainter, потом скопировал полученное изображение в матрицу OpenCV (благо, Qt с русским языком дружит). Но здесь не вышло с запуском приложения в виде демона: QPainter при запуске из-под консоли (класс QApplication был заменен на QCoreApplication) выдает ошибку сегментирования.
Когда не вышло здесь, я вернул QApplication на место и попробовал запустить своё приложение с ключом -platform offscreen, что исключило все вылеты программы, но возникла проблема со шрифтами: при старте приложения выдавалась ошибка QFontDatabase: Cannot find font directory, и приложение снова вываливалось с ошибкой сегментирования.
Тогда я установил переменную окружения QT_QPA_FONTDIR=/usr/share/fonts. Ошибка перестала возникать, но вместо русских символов на коллаже стали отображаться пустые квадратики.
Может быть, кто-нибудь мне сможет подсказать какую-то альтернативу, или то место, где я не додавил проблему до её логичного решения?
UPD: попробовал альтернативу - библиотеку CImg, но, как выяснилось, с русским языком не дружит и она...