Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.05.2011, 18:17   #1
Николая Ленин
Пользователь
 
Регистрация: 24.11.2010
Сообщений: 39
По умолчанию Не разберусь с CopyRect

Здравствуйте, мне для задачи нужно копировать участок с одного битмапа и вставить его на другой, только в самый угол. Подскажите, как это сделать.
Вот copyrect, который полностью изображение с одного битмапа копирует на другой
Цитата:
Image2.Canvas.CopyRect(
Rect(0, 0, Image2.Width, Image2.Height),
Image1.Canvas,
Rect(0, 0, Image1.Picture.Width, Image1.Picture.Height));
а мне нужно, чтобы допустим прямоугольник с координатами (10,10,50,50) скопировать и переместить на другой битмап в самый угол
Николая Ленин вне форума Ответить с цитированием
Старый 30.05.2011, 19:13   #2
Valio
Сливочное масло
Участник клуба
 
Аватар для Valio
 
Регистрация: 01.01.2011
Сообщений: 1,149
По умолчанию

А что тут может быть непонятно? Тут же одна процедура всего....

Код:
procedure CopyRect(const Dest: TRect; Canvas: TCanvas; const Source: TRect);
Dest - Результирующий прямоугольник.
Canvas - Исходный холст.
Source - Исходный прямоугольник.
Сливочное масло Valio - компиляция как по маслу
Valio вне форума Ответить с цитированием
Старый 30.05.2011, 22:25   #3
Николая Ленин
Пользователь
 
Регистрация: 24.11.2010
Сообщений: 39
По умолчанию

я привел пример, что мне конкретно не понятно. как вырезать кусок и вставить в нужное место
Николая Ленин вне форума Ответить с цитированием
Старый 30.05.2011, 22:41   #4
GunSmoker
Старожил
 
Регистрация: 13.08.2009
Сообщений: 2,581
По умолчанию

Без обид, но координатную сетку проходят в шестом классе школы (кажется). На бумажке нарисуйте области, сразу всё понятно будет. Исходная область будет ровно (10,10,50,50), а целевая - прямоугольник размерами (50-10) x (50-10) пикселей в нужном вам углу. Координаты вычисляются элементарно. Максимум, где можно напортачить - ошибиться на +/-1 пиксель на границах.
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
GunSmoker вне форума Ответить с цитированием
Старый 30.05.2011, 22:48   #5
Николая Ленин
Пользователь
 
Регистрация: 24.11.2010
Сообщений: 39
По умолчанию

я не понимаю, как работает процедура
причем тут координатная сетка
мне будет понятнее, если приведете пример, как вырезать с одного места и вставить в другое
Николая Ленин вне форума Ответить с цитированием
Старый 30.05.2011, 22:54   #6
GunSmoker
Старожил
 
Регистрация: 13.08.2009
Сообщений: 2,581
По умолчанию

Код:
Image2.Canvas.CopyRect(
Rect(0, 0, Image2.Width, Image2.Height),
Image1.Canvas,
Rect(0, 0, Image1.Picture.Width, Image1.Picture.Height));
Этот код копирует прямоугольник (0, 0) - (Image1.Width, Image1.Height) с Image1 на прямоугольник (0, 0) - (Image2.Width, Image2.Height) на Image2.

Иными словами, копируется Image1 целиком на Image2. Если размеры Image-й не совпадают - происходит масштабирование.

Ещё иными словами:
первый параметр - координаты целевой области
второй параметр - источник изображения
третий параметр - координаты области в источнике для копирования

Ну а назначение указывается тем, чей метод вызывается.
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
GunSmoker вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Использование Copyrect в связке с TPngImage...? spamer Общие вопросы Delphi 4 25.10.2010 16:00
CopyRect, TBitmap и WebBrowser Nub Общие вопросы Delphi 1 05.10.2010 21:46
Не разберусь в плохом скане кода fs444 Общие вопросы C/C++ 3 14.01.2010 15:10
Никак не разберусь почему не работает.. CodeExpert Помощь студентам 11 21.12.2009 02:10
Запутался с CopyRect Alex Cones Общие вопросы Delphi 2 01.12.2009 20:55