![]() |
|
| Правила Форума редакция от 22.06.2020 |
|
|||||||
|
|
Окажите посильную поддержку, мы очень надеемся на вас. Реквизиты для переводов ниже. |
|
![]() |
|
|
Опции темы | Опции просмотра |
Language
|
|
|
#1
|
|
Неактивный пользователь
Пол:
Регистрация: 24.08.2006
Сообщений: 31
Репутация: 6
|
Здравствуйте! Возникла такая проблема.
Имею картинку 500*500 необходимо скопировать часть картинки 20*20 проблема в том что если участок копирование находится скажем в правом верхнем углу... то задав размер битмапа куда будем копировать 20*20 мы попросту не увидим картинку а увидим если только зададим размер битмапа 500*20 Помогите плизз разобраться Вот пример исходника Код:
bit := TBitmap.Create; bit.Width := 20; bit.Height := 20; bit.Canvas.CopyRect(Bounds(a, b, c, d), Image1.Picture.Bitmap.Canvas, Bounds(a, b, c, d)); bit.SaveToFile(ExtractFilePath(Application.ExeName) + '1.bmp'); Image2.Picture.LoadFromFile(ExtractFilePath(Application.ExeName) + '1.bmp');
__________________
Бог два раза в жизни дает человеку бесплатные зубы... в третий раз за них предется платить... :4: Последний раз редактировалось Dr Evil; 11.04.2008 в 12:13.. |
|
|
|
| Реклама: |
|
|
#2
|
|
Неактивный пользователь
Пол:
Регистрация: 24.08.2006
Сообщений: 31
Репутация: 6
|
Всем спасибо кто пытался и кто не пытался помочь - проблему решил самостоятельно - зашарил
![]() PS Тему можно закрывать
__________________
Бог два раза в жизни дает человеку бесплатные зубы... в третий раз за них предется платить... :4: |
|
|
|
|
|
#3
|
|
Написал бы тогда что исправил) И как разобрался)
__________________
Хочу машину, дачу и бабу в придачу. |
|
|
|
|
|
|
#4
|
|||||||||||||||||||||||
|
Неактивный пользователь
Пол:
Регистрация: 24.08.2006
Сообщений: 31
Репутация: 6
|
Вот рабочий кусок кода Код:
procedure TForm1.Button2Click(Sender: TObject); var q, w: TRect; left_, top_, right_, bottom_: Integer; bit: TBitmap; begin left_ := StrToInt(Edit1.Text); top_ := StrToInt(Edit2.Text); right_ := StrToInt(Edit3.Text); bottom_ := StrToInt(Edit4.Text); bit := TBitmap.Create; bit.Width := right_ - left_; bit.Height := bottom_ - top_; q := Rect(left_, top_, right_, bottom_); w := Rect(0, 0, right_ - left_, bottom_ - top_); //перепутал местами w и q, а также сразу не понял что left и top для w должны быть = 0 bit.Canvas.CopyRect(w, Image1.Picture.Bitmap.Canvas, q); bit.SaveToFile(ExtractFilePath(Application.ExeName) + '1.bmp'); Image2.Picture.LoadFromFile(ExtractFilePath(Application.ExeName) + '1.bmp'); end;
__________________
Бог два раза в жизни дает человеку бесплатные зубы... в третий раз за них предется платить... :4: Последний раз редактировалось Dr Evil; 11.04.2008 в 19:26.. |
|||||||||||||||||||||||
|
|
|
| Сказали спасибо: |
![]() |
Похожие темы
|
||||
| Тема | Автор | Раздел | Ответов | Последнее сообщение |
| Использование Ubuntu | jackiam | UNIX, Linux, MacOs для PC и другие ОС | 1 | 18.02.2010 17:37 |
| Использование корзины в 2х ОС: 98 и XP | AVN | Microsoft Windows | 4 | 14.12.2009 12:25 |
| Эффективное использование ОЗУ | Yuric78 | Обсуждение программ | 15 | 21.07.2008 12:58 |
| Безопасное использование ICQ | Helenka | Скорая помощь | 17 | 06.05.2008 15:20 |
| использование Wi-Fi и LAN одновременно | serg1833 | Скорая помощь | 6 | 23.04.2008 23:12 |
|
|