Вообщем сначала долго парился с 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)
поставил
И оно заработало... Вопрос: почему если я сделаю ReadPixel например заново загружать картинку не надо, а здесь надо?
Вот впринципе работает (вроде):
Function CopyRect:TImage(im:TImage, x:Int, y:Int, width:Int, Height:Int)
Local sPix:TPixmap = LockImage(im)
UnlockImage(im)
Return LoadImage(sPix.Window(x:Int, y:Int, width:Int, Height:Int))
End Function
PS с Paste я вообще ниче не понял. Если накладывать один пиксмап на другой и при этом тот который накладываем выходить за границы первого
пример:
, то приложение вылетает с просьбой отправить отчет майкрософту. Если так то как можно вырезать часть картинки через paste?