Вам необходимо две копии вашего изображения. Маску и само
изображение. Маска является ничем иным, как изображением, состоящим
из двух цветов. Черного для тех областей, которые вы хотите
показать, и белого для прозрачных. Для Windows 3.1 маска изображения
может быть черно-белой, и предназначена для определения размеров
изображения. В Win95 черно-белая маска ни при каких обстоятельствах
не работает, т.к. у нее должна быть та же глубина цветов, что и у
самого изображения, которое вы хотите показать.
Изображение, которое вы хотите показать, должно содержать в
прозрачных областях значение цвета, равное 0. Метод помещения
изображения на экран такой же, как и в DOS. Маска AND экран,
изображение OR или XOR с той же областью.
Ниже приведен код Delphi, позволяя сделать вышеописанное с
помощью двух TBitmap.
Canvas.CopyMode := cmSrcAnd;
Canvas.CopyRect(TitleRect, BMask.Canvas, TitleRect);
{заполняем "пробелы" изображением}
Canvas.CopyMode := cmSrcPaint;
Canvas.CopyRect(TitleRect, BTitle.Canvas, TitleRect);
|
|