Про вырезание

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
nik936ta
Начинающий
Начинающий
Аватара пользователя
 
Сообщения: 20
Зарегистрирован: 22.05.2004 (Сб) 8:32

Про вырезание

Сообщение nik936ta » 14.06.2004 (Пн) 17:10

Объясните пожалуйста в подробностях как вырезать рисунок из формы. Подскажите пожалуйста? :cry:

A.A.Z.
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3035
Зарегистрирован: 30.06.2003 (Пн) 13:38

Сообщение A.A.Z. » 14.06.2004 (Пн) 20:07

Тут чуть ниже абсолютно такая же тема, если там ответы не устраивают - объясни поподробнее, что тебе дано и что надо получить? :|
Нет меня больше

Juriev
Новичок
Новичок
 
Сообщения: 38
Зарегистрирован: 25.11.2003 (Вт) 21:13

Сообщение Juriev » 14.06.2004 (Пн) 20:14

Что имеется в виду - вырезать?
Если удалить фон-картинку формы, то в свойствах формы picture стереть слово (Bitmap).
Если надо обработать картинку, то можно так:

Private Sub Picture1_Click()

Form1.PaintPicture Picture1.Picture, _
0, 0, Form1.ScaleWidth, Form1.ScaleHeight, _
0, 0, Picture1.ScaleWidth, Picture1.ScaleHeight

End Sub

Вместо события Picture1_Click() можно кнопкой или менюшкой и т.д.
Ноли-это координаты левого верхнего угла источника и приемника соответсвенно(можно менять на нужные)
ScaleWidth и ScaleHeight можно заменит на цыфры т.е можно взять часть картинки и вставить во весь приемник или всю картинку в часть приемника.

nik936ta
Начинающий
Начинающий
Аватара пользователя
 
Сообщения: 20
Зарегистрирован: 22.05.2004 (Сб) 8:32

Сообщение nik936ta » 19.06.2004 (Сб) 3:50

Juriev писал(а):Что имеется в виду - вырезать?
Если удалить фон-картинку формы, то в свойствах формы picture стереть слово (Bitmap).
Если надо обработать картинку, то можно так:

Private Sub Picture1_Click()

Form1.PaintPicture Picture1.Picture, _
0, 0, Form1.ScaleWidth, Form1.ScaleHeight, _
0, 0, Picture1.ScaleWidth, Picture1.ScaleHeight

End Sub

Вместо события Picture1_Click() можно кнопкой или менюшкой и т.д.
Ноли-это координаты левого верхнего угла источника и приемника соответсвенно(можно менять на нужные)
ScaleWidth и ScaleHeight можно заменит на цыфры т.е можно взять часть картинки и вставить во весь приемник или всю картинку в часть приемника.
Да, я сделал так: вставил PictureBox и в него мою картинку. Вот как раз её-то и надо мне вырезать. Мне говорили, что это как-то берётся цвет и от него вырезается. Кажется в Win API это GetPixel.

A.A.Z.
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3035
Зарегистрирован: 30.06.2003 (Пн) 13:38

Сообщение A.A.Z. » 21.06.2004 (Пн) 17:07

Допустим, у тебя на форме 2 PictureBox'а, в первом - картинка, во втором - то, что должно получится.
Код: Выделить всё
Private Declare Function TransparentBlt Lib "msimg32.dll" (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 crTransparent As Long) As Boolean

Sub Form_Load()
Picture1.AutoSize = True
Picture1.ScaleMode = vbPixels
Picture2.ScaleMode = vbPixels
End Sub

Sub Picture2_Paint()
DoEvents
TransparentBlt Picture2.hdc, 0, 0, Picture2.ScaleWidth, Picture2.ScaleHeight, Picture1.hdc, 0, 0, Picture1.ScaleWidth, Picture1.ScaleHeight, vbWhite
End Sub

На месте "vbWhite" ставишь цвет, по которому будет "обрезаться" картинка.
Надеюсь, это то, что тебе нужно... :roll:
Нет меня больше


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: SemrushBot и гости: 3

    TopList