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

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

Вернуться   Форум программистов > Delphi программирование > Мультимедиа в Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.03.2012, 20:09   #1
NBSTUDIO
Пользователь
 
Регистрация: 20.02.2009
Сообщений: 28
Вопрос Скопировать часть изображения в canvas

Допустим, на форме есть растянутый Image1, в него грузится картинка. Сверху Image1 лежит Image2 (размером меньше) и в его канву нужно загрузить тот кусок рисунка из Image1 который как бы закрывает Image2.
Другими словами, чтобы Image2 фотографировала в канву то, что находится под ней
Подскажите пожалуйста как можно реализовать!

Последний раз редактировалось NBSTUDIO; 19.03.2012 в 20:45.
NBSTUDIO вне форума Ответить с цитированием
Старый 19.03.2012, 21:51   #2
grom333
Форумчанин
 
Аватар для grom333
 
Регистрация: 21.10.2008
Сообщений: 337
По умолчанию

Код:
const
  x1=0;
  y1=0;
  x2=32;
  y2=32;
var
  bmpin: TBitmap;
  bmpout: TBitmap;
begin
  bmpin:=TBitmap.Create;
  bmpout:=TBitmap.Create;
  try
    bmpin.LoadFromFile('c:\1.bmp');
    bmpout.Width:=x2-x1+1;
    bmpout.Height:=y2-y1+1;
    bmpout.Canvas.CopyRect(Rect(0, 0, bmpout.Width, bmpout.Height), bmpin.Canvas, Rect(x1, y1, x2, y2));
    bmpout.SaveToFile('c:\2.bmp');
    image2.Picture.LoadFromFile('c:\2.bmp');
  finally
    bmpout.Free;
    bmpin.Free;
  end;
end;
Не помню где брал, осталось в проектах.. где-то переделывал, заменял координы x1,x2,у1,у2 просто координатами image2. и можно перетягивать компоненту по форме, автоматически меняются координаты. В этом же примере, просто в image2 вставляет скопированный и сохраненный рисунок по координатам...
Лучше быть последним из львов, чем первым среди шакалов.
Мой чат
community on struggle with zoomics
grom333 вне форума Ответить с цитированием
Старый 19.03.2012, 22:05   #3
Lesha
Форумчанин
 
Аватар для Lesha
 
Регистрация: 30.01.2009
Сообщений: 418
По умолчанию

http://www.cyberforum.ru/post2811657.html
Lesha вне форума Ответить с цитированием
Старый 19.03.2012, 22:21   #4
NBSTUDIO
Пользователь
 
Регистрация: 20.02.2009
Сообщений: 28
По умолчанию

спасибо за пример. вот нашел решение с помощью этой функции:
Код:
BitBlt(dest.Canvas.Handle, 0, 0, dest.Width,
  dest.Height, src.Canvas.Handle,
   dest.Left, dest.Top, SRCCOPY);
NBSTUDIO вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
скопировать часть таблицы по условию Sunix Microsoft Office Excel 12 05.08.2010 21:25
Разделение изображения на квадраты с помощью Canvas Gogia Помощь студентам 1 20.11.2009 04:44
Скопировать часть из метафайла AnTe Общие вопросы Delphi 1 05.10.2009 06:52
Скопировать выделенную часть ячейки! nikolai_P Microsoft Office Excel 8 05.05.2009 12:27
как скопировать часть объединенной ячейки? Азамат Microsoft Office Excel 20 14.07.2008 22:50