Показать сообщение отдельно
  #3  
Старый 29.06.2011, 15:28
antikiler antikiler вне форума
Прохожий
 
Регистрация: 16.03.2011
Сообщения: 23
Репутация: 24
По умолчанию

T-dayne
В твоем коде практически все правильно. Кроме данного параметра
w := Rect(0, 0, 0, 0);
Даный параметр указывает начальную и конечную точку области в которую
будет занесена картинка. И обе эти точки равны т.е. размер картинки нулевой - поэтому ее невидно. Сделай так:
w := Rect(0, 0, 352-255, 582-543);
Второе
Перед тем как копировать картинку, нужно установить изначально размер(высоту и ширину) bit,
bit.Width:=352-255; //ширина
bit.Height:=582-543; //высота
Треье
Следить чтобы кусок который ты хочеш вырезать был диапозоне размера картинки. Например если размер картинки 400 х 300, то в твоем случае
ничего путного не выйдет.
Ну и наконец подведем итог
Код:
bmp:=tbitmap.Create;
bit:=tbitmap.Create;
JPEG := TJPEGImage.Create;
JPEG.LoadFromFile('c:\first_image.jpg');
Bmp.Assign(JPEG); // картинка теперь в bmp
q := Rect(225, 543, 352, 582);
w := Rect(0, 0, 352-255, 582-543);
bit.Width:=352-255;  //ширина
bit.Height:=582-543;  //высота
bit.Canvas.CopyRect(w, bmp.Canvas, q);
bit.savetofile('c:\first_image_1.bmp')
jpeg.free;
bmp.Free;
bit.Free;
Ответить с цитированием