Нужно разрезать картинку

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
STanli
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 163
Зарегистрирован: 31.05.2004 (Пн) 15:22
Откуда: ТОМСК

Нужно разрезать картинку

Сообщение STanli » 07.09.2004 (Вт) 19:16

НУжна прога для разрезания картинки. Надо чтобы можно было выбрать картинку потом нажимаешь на чёнеть и она разрезается на несколько размером 30 в ширину и 60 в высоту. Потом кнопочка чтобы всё это дело сохранить. Возможно?
Раз, два, три, четыре, пять, с детства с рифмой я дружу.

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

Сообщение A.A.Z. » 07.09.2004 (Вт) 19:58

Предположим, что в Picture1 - исходная картинка, а в Picture2 должна быть полученная картинка. Тогда
Код: Выделить всё
Sub Form_Load()
Me.ScaleMode = vbPixels
Picture1.ScaleMode = vbPixels
Picture2.ScaleMode = vbPixels
Picture1.AutoSize = True
Picture1.AutoRedraw = True
Picture2.AutoRedraw = True
Picture2.Width = 30
Picture2.Height = 60
Picture2.PaintPicture Picture1.Picture, 0, 0, 30, 60, 0, 0, 30, 60, vbSrcCopy
SavePicture Picture2.Image, "C:\File.bmp"
End Sub
RTFM, однако!

STanli
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 163
Зарегистрирован: 31.05.2004 (Пн) 15:22
Откуда: ТОМСК

Сообщение STanli » 08.09.2004 (Ср) 18:50

да вот именно это и надо было , только ещё надо бы чтобы оставшаяся часть таким же обраом резалась
Раз, два, три, четыре, пять, с детства с рифмой я дружу.

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

Сообщение A.A.Z. » 08.09.2004 (Ср) 21:07

В разные PictureBox'ы?
Примечание: код будет гораздо длиннее.

STanli
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 163
Зарегистрирован: 31.05.2004 (Пн) 15:22
Откуда: ТОМСК

Сообщение STanli » 09.09.2004 (Чт) 14:58

да можно даже и не в боксы а просто чтобы он их сохранил разрезанными и усё
Раз, два, три, четыре, пять, с детства с рифмой я дружу.

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

Сообщение A.A.Z. » 10.09.2004 (Пт) 22:21

Начальные условия те же (AutoRedraw, ScaleMode и т.п.). Код, правда, немного кривой, но все же...
Код: Выделить всё
Option Explicit

Private Sub Form_Load()
Dim KX As Long, KY As Long, W As Boolean, H As Boolean, X As Long, Y As Long
If Picture1.Width / 30 = Picture1.Width \ 30 Then W = True
If Picture1.Height / 60 = Picture1.Height \ 60 Then H = True
KX = Picture1.Width \ 30 + CLng(W) + 1
KY = Picture1.Height \ 60 + CLng(H) + 1
For X = 0 To KX
For Y = 0 To KY
GetAndSaveRect X * 30, Y * 60
Next
Next
End Sub

Sub GetAndSaveRect(ByVal lLeft As Long, ByVal lTop As Long)
Picture2.Cls
Picture2.PaintPicture Picture1.Picture, 0, 0, 30, 60, lLeft, lTop, 30, 60, vbSrcCopy
SavePicture Picture2.Image, "C:\MMM\" & lLeft / 30 & "-" & lTop / 60 & ".bmp"
End Sub

STanli
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 163
Зарегистрирован: 31.05.2004 (Пн) 15:22
Откуда: ТОМСК

Сообщение STanli » 11.09.2004 (Сб) 16:45

Ещё бы знать чё такое AutoRedraw, ScaleMode вобще было бы отлично :D
Раз, два, три, четыре, пять, с детства с рифмой я дружу.

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

Сообщение A.A.Z. » 11.09.2004 (Сб) 19:34

Добавь в начало процедуры
Код: Выделить всё
Me.ScaleMode = vbPixels
Picture1.ScaleMode = vbPixels
Picture2.ScaleMode = vbPixels
Picture1.AutoSize = True
Picture1.AutoRedraw = True
Picture2.AutoRedraw = True
Picture2.Width = 30
Picture2.Height = 60

STanli
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 163
Зарегистрирован: 31.05.2004 (Пн) 15:22
Откуда: ТОМСК

Сообщение STanli » 15.09.2004 (Ср) 21:17

А ты сам попробывал что получается =) он начинает сохранять и получается около 2000 :!: картинок =)
Или это может опять я чтото не допонил :?:
Раз, два, три, четыре, пять, с детства с рифмой я дружу.

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

Сообщение A.A.Z. » 15.09.2004 (Ср) 21:36

Я попробовал, получилось ~20 картинок (500х300) :roll:

STanli
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 163
Зарегистрирован: 31.05.2004 (Пн) 15:22
Откуда: ТОМСК

Сообщение STanli » 15.09.2004 (Ср) 21:43

чёто я недогоняю мож примерчик напишеш
Раз, два, три, четыре, пять, с детства с рифмой я дружу.

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

Сообщение A.A.Z. » 15.09.2004 (Ср) 22:13

Сейчас...
Вложения
Project1.rar
Проект
(2.92 Кб) Скачиваний: 57


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

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

Сейчас этот форум просматривают: AhrefsBot, Google-бот и гости: 4

    TopList  
cron