Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 25 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 12.07.2007, 21:01   #1
Dimitriys
 
Регистрация: 27.11.2006
Сообщений: 6
Репутация: 10
По умолчанию Перенос из одного Image в другой

Допустим, у меня картинка в Image1. Мне надо взять кусок. Допустим, 50 на 50. И его в Image2. Как сделать?
Dimitriys вне форума   Ответить с цитированием
Старый 13.07.2007, 00:59   #2
itisiam
аккаунт недоступен
Форумчанин
 
Регистрация: 23.01.2007
Сообщений: 107
Репутация: 54
Сообщение

это описано в любой книге по делфи ну да ладно ))


procedure CopyRect (Dest:TRect;Canvas:TCanvas;Source:T Rect);

Dets:прямоугольник куда копируется
Canvas: канва компонента из которого производится копирование
Source:прямоугольни который копируется

TRect -знаете что такое? если нет то это прямоугольник который задается методами Rect.Left,Rect.Top,Rect.Right,Rect. Bottom


например
Form1.Canvas.CopyRect(Dest,Image1.C anvas,Source);
будет копирован прямоугольник Source из Image1 на канву формы в прямоугольник Dest
понятно все?
itisiam вне форума   Ответить с цитированием
Старый 13.07.2007, 13:04   #3
Сильванович Михаил
Студент
Форумчанин
 
Регистрация: 10.11.2006
Адрес: 116км
Сообщений: 196
Репутация: 276

icq: 8611025
По умолчанию

Есть API-функция:

function BitBlt(DestDC: HDC; X, Y, Width, Height: Integer; SrcDC: HDC; XSrc, YSrc: Integer; Rop: Longint): Bool;

Итак:
Код:
 Image2.Picture.Bitmap.Width:=50;
 Image2.Picture.Bitmap.Height:=50;
 BitBlt(Image2.Picture.Bitmap.Canvas.Handle,0,0,50,50,
         Image1.Picture.Bitmap.Canvas.Handle,10,10,SRCCOPY);
//копирует от точки 10,10
З.Ы. по поводу TRect - это не прямоугольник, а структура, описывающая
координаты всех углов прямоугольника.
И задать ее можно с помощью следующей процедуры:
procedure SetRect(var Rect: TRect; X1, Y1, X2, Y2: Integer);
Хотя описанный выше способ применим
(через субьекты структуры: left,top,right,bottom), но великоват в
написании - 4 строки вместо 1й!
__________________
Visita Interiorem Terrae Rectificando Operae Lapidem...

Последний раз редактировалось Сильванович Михаил; 13.07.2007 в 13:13.
Сильванович Михаил вне форума   Ответить с цитированием
Старый 13.07.2007, 22:04   #4
Dimitriys
 
Регистрация: 27.11.2006
Сообщений: 6
Репутация: 10
По умолчанию

Всё, разобрался, спасибо.
Dimitriys вне форума   Ответить с цитированием
Старый 14.07.2007, 22:53   #5
itisiam
аккаунт недоступен
Форумчанин
 
Регистрация: 23.01.2007
Сообщений: 107
Репутация: 54
По умолчанию

то что структура я понимаю , просто так написал ))
а вот за SetRect спасибо, 4 строчки и правда многовато
itisiam вне форума   Ответить с цитированием
Старый 14.07.2007, 23:32   #6
mutabor
Телепат с дипломом
Профессионал
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,928
Репутация: 1570

icq: 401708834
По умолчанию

Я вообще так всегда пишу, проще некуда
CopyRect (Rect(x1,y1,x2,y2),Canvas,Rect(x1,y 1,x2,y2));
А про SetRect и я не знал, намотаю на ус, может пригодиться.
mutabor вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вставить данные из одного листа (таблицы) в другой kartol Microsoft Office Excel 30 11.08.2008 10:43
Excel-перенос иформации с одного листа в другой согласно условия ЛюдмилаЗ Microsoft Office Excel 2 28.05.2008 12:38
Перенос проги с одного ПК на другой Azef Помощь студентам 2 13.05.2008 18:07
Как мне из формы одного проекта запустить другой Diimka Помощь студентам 2 13.12.2007 22:41
Передача файла с одного компа на другой Kocapb Фриланс 4 18.11.2007 19:37


17:06.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.