Страница: 1 |
Страница: 1 |
Вопрос: редактор изображений - crop
Добавлено: 31.01.07 10:47
Автор вопроса: AlexDerS
Делаю очень-очень простой редактор изображений.
Основная функция - кадрирование изображения (crop).
Как можно сделать такой инструмент?
Описание: рамка (прямоугольник) с динамически изменяемыми размерами (растягивание, сжатие; все действия - мышкой).
Инструмнт похож на:
В ACDSee - crop
B Photoshop - "рамка"
как его сделать?
Visual Basic 2005 Express Edition
Ответы
Всего ответов: 6
Номер ответа: 1
Автор ответа:
-АлександР-
Вопросов: 55
Ответов: 1008
Web-сайт:
Профиль | | #1
Добавлено: 31.01.07 13:02
с помощью gdi+ ессно,)
Номер ответа: 2
Автор ответа:
Bombardier
ICQ: 42305746
Вопросов: 2
Ответов: 67
Web-сайт:
Профиль | | #2
Добавлено: 31.01.07 15:07
попробуй так:
Dim x1 As Integer
Dim y1 As Integer
Dim x2 As Integer
Dim y2 As Integer
Private Sub Form_Load()
Shape1.Visible=False
Shape1.BorderStyle=3
Me.Show
End Sub
Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = vbLeftButton Then
x1 = X
y1 = Y
Shape1.Left = X
Shape1.Top = Y
Shape1.Width = 1
Shape1.Height = 1
Shape1.Visible = True
 rawing = True
End If
End Sub
Private Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Drawing Then
x2 = X
y2 = Y
Shape1.Width = x2 - x1
Shape1.Height = y2 - y1
End If
End Sub
Private Sub Picture1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Drawing Then
 rawing = False
Shape1.Visible = False
 oCrop (x1,x2,y1,y2) 'здесь типа вызов твоей процедуры
End If
End Sub
Номер ответа: 3
Автор ответа:
AlexDerS
Вопросов: 37
Ответов: 61
Профиль | | #3
Добавлено: 31.01.07 16:21
А что такое vbLeftButton?
В VB2005 такого нет (код видимо для VB6).
Номер ответа: 4
Автор ответа:
AlexDerS
Вопросов: 37
Ответов: 61
Профиль | | #4
Добавлено: 31.01.07 16:22
и DoCrop?
Номер ответа: 5
Автор ответа:
-АлександР-
Вопросов: 55
Ответов: 1008
Web-сайт:
Профиль | | #5
Добавлено: 31.01.07 16:39
Номер ответа: 6
Автор ответа:
-АлександР-
Вопросов: 55
Ответов: 1008
Web-сайт:
Профиль | | #6
Добавлено: 31.01.07 16:45
но собственно идея аналогична, вот только надо пользоваться gdi+
даю hint
pe.DrawLine(Pens.Black, 0, 0, 100, 100)
pe.Dispose()