Встроенные изображения в wxHaskell
Я программист на Python, имеющий опыт работы с wxPython, и я изучаю Haskell и изучаю небольшой GUI-проект в wxHaskell. Одна особенность из wxPython, которую я еще не выяснил, как дублировать, - это PyEmbeddedImage, где изображения могут храниться в виде строк внутри модулей Python, а затем к ним можно получить доступ из wxPython. Существует ли эта функция в wxHaskell, и если да, то как вы это делаете?
Спасибо!
2 ответа
Вы можете попробовать использовать file-embed для встраивания файла, а затем использовать imageCreateFromPixels
создать образ.
использование imageGetPixels
подготовить файл перед внедрением (например, создать приложение wx, которое будет загружать изображение из каталога ресурсов и сериализовать в файл)
Мне очень нравится предложение Юраса использовать file-embed
пакет, который автоматизирует задачу встраивания данных в строку байтов.
Чтобы увидеть, как это сделать вручную, просмотрите вики-статью на Haskell о скомпилированных постоянных структурах данных (например, для компиляции в больших картах или других структурах данных).
Использование bytestring
и -XOverloadedStrings
расширение приятно избегает необходимости волшебных распакованных значений.