![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
||||
|
||||
![]() всем привет. Есть bmp картинка на диске, нужно вырезать из нее прямоугольник координатами (225, 543, 352, 582), и вставить в новый tbitmap. Знаю что это можно сделать с функцией copyrect, но не знаю как пользоваться. Научите, друзья
![]() Вот что делаю я: Код:
В итоге bit пустой ![]() |
#2
|
||||
|
||||
![]() Код:
Пишу программы за еду. __________________ |
#3
|
|||
|
|||
![]() 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, то в твоем случае ничего путного не выйдет. Ну и наконец подведем итог Код:
|
#4
|
|||
|
|||
![]() Я вот немного не могу понять одного. В примерах все данные сохраняются в новое изображение. А если мне необходимо его использовать и загрузить в только что созданное изображение?
Как-то img.Picture.LoadFromFile(bmp); не хочет работать. А в целом суть та же. Из предложенного изображения, вырезать часть и поместить на форму. |
#5
|
||||
|
||||
![]() А при чём тут img.Picture.LoadFromFile?
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#6
|
|||
|
|||
![]() Цитата:
![]() |
#7
|
||||
|
||||
![]() Используй метод Assign.
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#8
|
|||
|
|||
![]() var
BmpI: TBitmap; BmpT: TBitmap; ImgF: TImage; begin BmpI:=TBitmap.Create; BmpT:=TBitmap.Create; ImgF:=TImage.Create(nil); BmpI.LoadFromFile('Image.bmp'); BmpT.Width:=32; BmpT.Height:=32; BmpT.Canvas.CopyRect(Rect(0, 0, 32, 32), BmpI.Canvas, Rect(0, 0, 32, 32)); ImgF.Picture.Assign(BmpT); // так работает, но не показывает изображение ImgF.Assign(BmpT); // если так - ошибка |
#9
|
|||
|
|||
![]() Все. Разобрался. Надо же еще форму указывать
![]() ImgF.Parent:=Form1; |
#10
|
||||
|
||||
![]() Всё работает:
Код:
![]() Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |