Показать сообщение отдельно
Старый 25.10.2010, 01:52   #1
IgorOK
Мастер
 
Аватар для IgorOK
 
Регистрация: 26.10.2009
Сообщений: 1,194
Написано 615 полезных сообщений
(для 2,209 пользователей)
Копирование области большого изображения

Возникла необходимость скопировать часть изображения из уже загруженного большого изображения 2900х2900. Не могу понять что не так. Pixmap почему-то никак не копируется.

Graphics 640, 480, 0

Local Directory:String=RequestDir("Выберите папку для обработки")

Print Directory

Local Dir:String[]=LoadDir(Directory)

If Dir.Length=0 Then End

Local CropTop=Int(Input("top %: "))
Local CropBottom=Int(Input("bottom %: "))

For Index=0 To Dir.Length-1
	Local Path:String=Directory+"/"+Dir[Index]
	
	If FileType(Path)=FILETYPE_FILE
		If Lower(ExtractExt(Path))="jpg"

			Local Image:TImage=LoadImage(Path)
			Local W=ImageWidth(Image)
			Local H=ImageHeight(Image)
			
			Local CropTopOffset=H/100*CropTop
			Local CropBottomOffset=H/100*CropBottom
			Local DstImage:TImage=CreateImage(W, H-CropTopOffset-CropBottomOffset)
			
			LockImage DstImage
				DrawImage(Image, 0, -CropTopOffset)
				Pixmap:TPixmap=GrabPixmap(0, CropTopOffset, W, H-CropBottomOffset)
			UnlockImage DstImage
			
			SavePixmapJPeg(Pixmap, Directory+"/cc_"+Dir[Index], 80)
		EndIf
	EndIf
Next
(Offline)
 
Ответить с цитированием