ПОНЯТНО О Visual Basic NET (том 2)

Метод RotateFlip объекта Bitmap


Метод RotateFlip позволяет поворачивать (Rotate) и зеркально отражать (Flip) картинку в памяти.

Вот программа:

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        Dim Гр As Graphics = Me.CreateGraphics

        Dim Фото As New Bitmap("Spacescape.JPG")

        Фото.RotateFlip(RotateFlipType.Rotate90FlipNone)     'Повернули по часовой на 90 град, не отражали

        Гр.DrawImage(Фото, 0, 0)

        Фото.RotateFlip(RotateFlipType.RotateNoneFlipY)     'Отразили по вертикали, не поворачивали

        Гр.DrawImage(Фото, 400, 0)

End Sub

Вот результат ее работы (Рис. 12.14).

Рис. 12.14



Пояснения. У метода RotateFlip всего один параметр. Как только вы раскроете скобку, VB предложит вам все 16 возможных значений этого параметра. Они являются значениями перечисления  RotateFlipType. В смысле всех 16 легко разобраться на 4 нижеприведенных примерах. Нужно только знать, что Rotate переводится «вращай по часовой стрелке», Flip переводится «зеркально отражай», None переводится «не надо»:

RotateNoneFlipX

Вращать не надо, отражай по горизонтали

Rotate180FlipNone

Вращай на 180 градусов, отражать не надо

Rotate90FlipY

Вращай на 90 градусов, после чего отрази по вертикали

Rotate270FlipXY

Вращай на 270 градусов, после чего отрази по горизонтали и вертикали

Посмотрим на программу. Оператор

        Фото.RotateFlip(RotateFlipType.Rotate90FlipNone)     'Повернули по часовой на 90 град, не отражали

поворачивает картинку в объекте Фото. Она так и остается там повернутой. Но мы этого пока не видим. Чтобы увидеть ее на форме, применяем следующий оператор:

        Гр.DrawImage(Фото, 0, 0)

Это и есть картинка в левой части Рис. 12.14. Она действительно повернута по сравнению с исходной ориентацией, которую мы можем видеть на Рис. 12.13. Далее оператор

        Фото.RotateFlip(RotateFlipType.RotateNoneFlipY)     'Отразили по вертикали, не поворачивали

отражает по вертикали уже повернутую картинку в объекте Фото, после чего следующий оператор показывает ее нам в правой части рисунка..



Содержание раздела