SetPictureBoxDimensions();
CreateForeground();
CreateBackground();
//Получить объект Graphics изображения ЗАДНЕГО ПЛАНА, поскольку
//именно поверх него мы собираемся рисовать. System.Drawing.Graphics gfx;
gfx = System.Drawing.Graphics.FromImage(m_backgroundBitmap);
//-------------------------------------------------------
//Создать класс ImageAttributes. Этот класс позволяет нам
//задать прозрачный цвет на наших операций рисования
//-------------------------------------------------------
System.Drawing.Imaging.ImageAttributes trasparencyInfo = new System.Drawing.Imaging.ImageAttributes();
//----------------------
//Задать прозрачный цвет
//----------------------
trasparencyInfo.SetColorKey(System.Drawing.Color.Yellow, System.Drawing.Color.Yellow);
//Задать прямоугольник рисунка
System.Drawing.Rectangle rect = new System.Drawing.Rectangle(0, 0, m_backgroundBitmap.Width, m_backgroundBitmap.Height);
//-----------------------------------------------------------------------
//Нарисовать изображение ПЕРЕДНЕГО ПЛАНА поверх изображения ЗАДНЕГО ПЛАНА
//и использовать прозрачный цвет в ImageAttributes для создания окна
//прозрачности, через которое виден задний план
//-----------------------------------------------------------------------
gfx.DrawImage(m_foregroundBitmap, rect, 0, 0, m_foregroundBitmap.Width,
m_foregroundBitmap.Height, System.Drawing.GraphicsUnit.Pixel, trasparencyInfo);
//Очистить
gfx.Dispose();
//Показать результат в виде растрового изображения
pictureBox1.Image = m_backgroundBitmap;
}
Встраивание изображений в виде ресурсов приложений
Во многих приложениях растровые изображения используются для того, чтобы предоставить пользователям красочный интерфейс. Нестандартные кнопки с нарисованными поверх них изображениями, графические изображения, используемые в иллюстративной графике, логотипы и другие изображения заднего плана — все это улучшает визуальный облик мобильного приложения. Вместо того чтобы заново создавать сложные рисунки, в играх интенсивно используют заранее заготовленные изображения. Поэтому очень часто удобно иметь изображения, встроенные в двоичный код приложения. Далее эти изображения автоматически развертываются вместе с приложением; такая практика гораздо более надежна, чем работа с множеством файлов изображений наряду с файлом приложения. Встраивание изображений не сопровождается увеличением общего размера приложения по сравнению с использованием отдельных файлов; в обоих случаях мы имеем дело с бинарными потоками изображений, к которым ваше приложение получает доступ по мере необходимости.
Чтобы использовать двоичные ресурсы, встроенные в приложение, вам необходимо следующее:
1. Изображения должны быть скомпилированы и включены в состав вашего приложения. Это можно указать во время проектирования в среде разработки.
2- Ваше приложение должно знать, где найти ресурсы во время выполнения. Для обращения к двоичным ресурсам, встроенным в откомпилированные сборки .NET, используется синтаксис, аналогичный путям доступа к файлам, позволяющий указывать местоположение ресурсов в загруженных сборках вашего приложения во время выполнения.
Далее мы остановимся на обоих этих моментах.
Как встроить изображение в приложение
В Visual Studio .NET процесс включения двоичных ресурсов в приложение осуществляется сравнительно несложно:
1. Запустите Visual Studio .NET.
2. Создайте проект C# Smart Device Application.
3. Выберите в меню Project (Проект) команду Add Existing ltem (Добавить существующий элемент).
4. В открывшемся диалоговом окне Add Existing Item измените установку фильтра Files of Type (Тип файлов) на Image Files (Файлы изображений).
5. Найдите файл изображения, который вы хотите добавить, и выделите его. ( Примечание. Я настоятельно рекомендую выбирать файлы размером менее 300 Кбайт, иначе вы будете создавать в своем приложении гигантские файлы изображений, которые по своим размерам, скорее всего, будут превышать само приложение; растровые изображения с чрезмерно большим разрешением могут приводить к нехватке памяти устройства при их загрузке во время выполнения.) В данном примере мы будем полагать, что загружается файл MyImage.PNG.
6. Перейдя в окно Visual Studio .NET Solution Explorer, выделите только что добавленный файл изображения (MyImage.PNG), щелкните на нем правой кнопкой мыши и выберите в открывшемся контекстном меню пункт Properties (Свойства).
7. В открывшемся диалоговом окне Properties найдите свойство Build Action (Действие при сборке). По умолчанию для него устанавливается значение Content (Содержимое); это означает, что файл изображения будет копироваться на устройство вместе с приложением при его развертывании.
Читать дальше