|
Сегодня в
выпуске: Текстурируем
форму |
В сегодняшнем выпуске, я приведу код небольшой
программы - "текстуризатора" вашей формы.
Код довольно легкий для понимания. Для нашей
программы потребуется всего лишь экранная форма
(1 шт.), элемент управления Image (1шт., или PictureBox, тоже
1 шт.) и какая-нибудь картинка, небольшого размера,
желательно текстурная.
Сразу предупреждаю, вне зависимости от
варианта, если вы не устанавливали значение
свойства Picture во время разработки вашей
программы и хотите загрузить картинку во время
выполнения вашей программы, то вам надо будет
использовать функцию LoadPicture().
Покажу на примере: Picture1.Picture = LoadPicture
("C:\Pictures\1.jpg")
Вариант 1. Используем ImageBox
(правильнее, просто Image) |
Private Sub Form_Load()
Image1.Visible = False 'нам не
нужно, чтобы сама картинка была видна
End Sub
Private Sub Form_Paint()
For x = 0 To Form1.Width Step Image1.Width
For y = 0 To Form1.Height Step Image1.Height
Form1.PaintPicture Image1.Picture, x, y
Next
Next
End Sub
Вариант 2. Используем PictureBox |
Private Sub Form_Load()
Picture1.AutoSize = True 'нам
нужно, чтобы размеры элемента управления
'в точности соответствовали размерам рисунка
Picture1.BorderStyle = 0 'убираем
обрамление(границы) PictureBox, иначе на форме
'между картинками будут пространства, и текстура
некрасиво будет выглядеть
Picture1.Visible = False 'нам
не нужно, чтобы сама картинка была видна
End Sub
Private Sub Form_Paint()
For x = 0 To Form1.Width Step
Picture1.Width
For y = 0 To Form1.Height Step
Picture1.Height
Form1.PaintPicture Picture1.Picture, x, y
Next
Next
End Sub
Вот и все. Вся программа. Самое сложное в ней -
метод PaintPicture. Есть и другие варианты
текстурирования формы, но они намного сложнее,
чем данные. Наиболее простой вариант - первый,
с элементом управления Image работать проще, да и
сам программный код поменьше...
Сведения - метод
PaintPicture |
Синтаксис: <object>.PaintPicture picture, x1, y1, width1, height1, x2, y2, width2, height2, opcode
Параметры, выделенные синим, необязательные и
могут быть опущены.
<object> - выражение,
указывающее на объект (могут быть Form, PictureBox или
Printer). Если <object> не указан, то по умолчанию
берется активная форма (на которой фокус).
picture - источник графики,
которая должна быть нарисована на <object>.
Источниками могут быть свойства Picture объекта Form
или элемента управления PictureBox(Image), либо
функция LoadPicture.
x1, y1 - числа, указывающие на
координаты (верхний левый угол) на <object>
для того чтобы рисовать picture на <object>
(хм, как заумно сказано...:))
width1, height1 - ширина/высота
рисуемой картинки. Вследствие этого, картинка
будет сжата/растянута.
x2, y2 - определяет координаты
прямоугольника (на самой картинке, а не на
объекте). Картинка в этом прямоугольнике
остается, остальная часть отсекается (clipping).
width2, height2 -
ширина/высота, почти как width1/height1, только по отношению к вырезаемой
области картинки.
opcode - (Long),
указывает на тип побитовой операции (Not, Xor...)
выполняемой над картинкой. Хм, надеюсь вы никогда
этим пользоваться не будете...:)
Пока вопросов не было, так что и отвечать не на
что. Надеюсь, что со временем и вопросы появятся,
а следом и ответы...
Это все, до следующего выпуска. До свидания.
Жду ваших писем с вашими вопросами, мнениями,
советами и т.д. на maxx@migsv.ru
|