Тема: Windows GUI
Показать сообщение отдельно
Старый 19.11.2009, 02:25   #6
h1dd3n
Бывалый
 
Аватар для h1dd3n
 
Регистрация: 19.06.2008
Сообщений: 679
Написано 264 полезных сообщений
(для 450 пользователей)
Ответ: Windows GUI

Вообщем сначала долго парился с Window() методом.
Делал так:
Graphics 800,600,0

Global im1:TImage LoadImage("src.png")
Global 
im2:TImage CreateImage(50,50'кусочек который хочу скопировать
pix1:TPixmap = LockImage(im1)
pix2:TPixmap = LockImage(im2)
pix2 = pix1.Window(20,20,50,50)
UnlockImage(im2)
UnlockImage(im1)

DrawImage(im2,20,20)

Flip()

WaitKey() 
Не работало.
Потом методом тыка после
pix2 pix1.Window(20,20,50,50
поставил
im2 LoadImage(pix2
И оно заработало... Вопрос: почему если я сделаю ReadPixel например заново загружать картинку не надо, а здесь надо?
Вот впринципе работает (вроде):
Function CopyRect:TImage(im:TImagex:Inty:Intwidth:IntHeight:Int)
    
Local sPix:TPixmap LockImage(im)
    
UnlockImage(im)
    Return 
LoadImage(sPix.Window(x:Inty:Intwidth:IntHeight:Int))
End Function 
PS с Paste я вообще ниче не понял. Если накладывать один пиксмап на другой и при этом тот который накладываем выходить за границы первого
пример: Нажмите на изображение для увеличения
Название: toshow2.png
Просмотров: 1385
Размер:	3.6 Кб
ID:	8325, то приложение вылетает с просьбой отправить отчет майкрософту. Если так то как можно вырезать часть картинки через paste?
(Offline)
 
Ответить с цитированием