.
Visual Basic: усовершенствуем программу просмотра изображений (VB, Image, LoadPicture).
Автор megabax   
10.08.2010 г.
Первые шаги в программировании на Visual Basic

 Visual Basic: усовершенствуем программу просмотра изображений (VB, Image, LoadPicture).

На прошлом уроке мы написали простейший просмотрщик картинок. Сегодня мы доработаем его таким образом, что бы он мог автоматически уменьшать большие картинки с сохранением пропорции. Для этого наш компонент PictureBox уменьшим и сделаем невидимым (свойство Visible установим в false)*:

Visual Basic: усовершенствуем программу просмотра изображений (VB, Image, LoadPicture).

Кинем на форму компонент Image, который отличается от PictureBox  тем, что в отличии от последнего, может масштабировать картинку, а PictureBox  размер картинки сохраняет, но может менять собственные размеры. Присвоим ей имя Img*.

Visual Basic: усовершенствуем программу просмотра изображений (VB, Image, LoadPicture).

Теперь перепишем обработчик события Click списка файлов*:

Private Sub FileList_Click()
     Img.Width = 6500
     Pic.Picture = LoadPicture(DirBox.Path + "\" + FileList.FileName)
     ImWidth = ScaleX(Pic.Picture.Width, vbHimetric, vbPixels)
     imHeight = ScaleY(Pic.Picture.Height, vbHimetric, vbPixels)
     If ImWidth > imHeight Then
         Koeff = ImWidth / Img.Width
     Else
         Koeff = imHeight / Img.Height
     End If
     WidthNew = ImWidth / Koeff
     HeighNew = imHeight / Koeff
     Img.Width = WidthNew
     Img.Height = HeighNew
     Img.Picture = Pic.Picture
End Sub

 

Сначала мы устанавливаем ширину картинки:

 Img.Width = 6500

Так как в результате масштабирования изображения она может сбиться. Затем загружаем картинку:

 Pic.Picture = LoadPicture(DirBox.Path + "\" + FileList.FileName)

для нее то мы и оставили старый компонент PictureBox. Пересчитываем длину и ширину с учетом масштаба:

 

     ImWidth = ScaleX(Pic.Picture.Width, vbHimetric, vbPixels)
     imHeight = ScaleY(Pic.Picture.Height, vbHimetric, vbPixels)

 

В зависимости от того, что больше, длина или ширина вычисляем коэффициент пересчета размера картинки:

     If ImWidth > imHeight Then
         Koeff = ImWidth / Img.Width
     Else
         Koeff = imHeight / Img.Height
     End If

 

Применяем новые размеры и отображаем картинку:

 

     WidthNew = ImWidth / Koeff
     HeighNew = imHeight / Koeff
     Img.Width = WidthNew
     Img.Height = HeighNew
     Img.Picture = Pic.Picture

 

Теперь запустим программу и убедимся, что она правильно работает:

 

Visual Basic: усовершенствуем программу просмотра изображений (VB, Image, LoadPicture).

 

 


Скриншоты, помеченные знаком *, являются цитатами и иллюстрациями  в соответствии со ст. 1274 ГК РФ программного продукта "Microsoft Visual Studio", авторское право на который принадлежит корпорации Microsoft.. 


Последнее обновление ( 22.11.2010 г. )