26 Октябрь 2009

Функция для изменения размеров картинки

Мультимедиа |  Таги: , , , ,

Функция для изменения размеров картинки.
Добавьте на форму 2 PictureBox и 1 CommandButton.

Private Declare Function StretchBlt Lib "gdi32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal Nwidth As Long, ByVal Nheight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal nSrcWidth As Long, ByVal nSrcHeight As Long, ByVal dwRop As Long) As Long
Const SRCCOPY = &HCC0020

Private Sub ImgResize(src As PictureBox, TmpPic As PictureBox, mWidth As Long, mHeight As Long)
src.AutoRedraw = False
TmpPic.AutoRedraw = True
TmpPic.Height = mHeight 'установка размеров невидимого picturebox
TmpPic.Width = mWidth
StretchBlt TmpPic.hdc, 0, 0, mWidth, mHeight, src.hdc, 0, 0, src.Width, src.Height, SRCCOPY
'сохранить временной файл на диске
SavePicture TmpPic.Image, App.Path + "\tempimg.bmp"
'перезагрузить оригинальный picturebox
src.AutoSize = True
src.Picture = LoadPicture(App.Path + "\tempimg.bmp")
'удалить временной файл
Kill App.Path + "\tempimg.bmp"
'очистить невидимый picturebox
TmpPic.Picture = LoadPicture()
'пример для вызова функции
'ImgResize Picture1, Picture2, Picture1.Width / 2, Picture1.Height / 2
End Sub

Private Sub Command1_Click()
ImgResize Picture1, Picture2, Picture1.Width / 2, Picture1.Height / 2
End Sub

Private Sub Form_Load()
Picture2.Visible = False
End Sub


У нас один комментарий на запись “Функция для изменения размеров картинки”

Почему бы Вам не высказать свое мнение! Позвольте нам узнать, что Вы думаете...

  1. 1 On 04.10.2010, Mikle said:

    Зачем так сложно? API, временный файл…
    Помещаем на форму одну PictureBox с BorderStyle=None и AutoRedraw=True. Код:
    [code]
    Private Sub Picture1_Click()
    Picture1.Move 0, 0, 300, 200
    Picture1.PaintPicture Picture1.Picture, 0, 0, 300, 200
    End Sub
    [/code]
    Картинка меняет размер на 300×200.

Оставить комментарий

Я не робот.