Глава 31. Resource Workshop__________________________________897
Библиотека OWL и Windows 95 API предоставляет ряд функций, обеспечивающих вывод, редактирование и сохранение изображений в формате битовых образов. В этом разделе будет показано, как выводить битовые образы с палитрами в 16 и 256 цветов. Работа с битовыми образами требует несколько большего объема кода, чем курсоры и значки, но, разумеется, много меньшего, чем непосредственное использование алгоритмов сжатия и обработки изображений.
16-цветные битовые образы
Битовые образы с 16-цветной палитрой способны обеспечить вывод картинок с хорошим разрешением и достаточным разнообразием цветов. Такие картинки не требовательны к ресурсам жесткого диска и динамической памяти. Демонстрационная программа, приводимая в этом разделе, выводит битовый образ, созданный в графическом редакторе Paintbrush на основе популярной карикатуры.
Для использования этого примера откройте файл проекта .ide из оболочки Borland. Вызовите Resource Workshop и откройте файл проекта ресурсов. С помощью команд меню File, Add to Project или Resource, New, Creating a bitmap добавьте в проект файл битового образа, который вы хотите вывести. Можно переименовать ресурс командой Edit, Rename или оставить имя, предлагаемое для битового образа по умолчанию. Затем сохраните проект и выйдите из Resource Workshop.
Теперь у вас есть заголовочный файл (.h), содержащий ссылку на ресурс, файл ресурсов, содержащий битовый образ и пустой .срр файл для текста программы. Поскольку выводить битовые образы может понадобиться в самых различных случаях, пример из листинга 31.4 демонстрирует использование базовых средств вывода таких картинок из приложений (результат работы программы см. на рис. 31.9).
1. // OWLBMP.CPP — Пример вывода 16-цветного битового образа
2. // Заголовочные файлы Borland
3. ^include <owi\applicat.h>
4. #include <owl\framewin.h>
5. #include <owl\pch.h>
6. #include <owl\dc.h>
7. // Заголовки не из Borland
8. #include "owlbmp.h"
9. class TBitmapWindow : public TFrameWindow{
10. public:
11. TBitmapWindow( const char *title) ;
12. -TBitmapWindow();