Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.03.05;
Скачать: CL | DM;

Вниз

Увеличение области картинки.   Найти похожие ветки 

 
MakedoneZ ©   (2005-09-27 12:36) [0]

Дело такое...

Мне надо чтоб когда я выделял(мышкой создавал прямоугольник) какую-то область на экране,эта область автоматически увличивалась,в смысле масштаба.

Мне надо "вписать" некоторую область TImage,в TRect,далее эту область внести в свойство Picture,обекта TImage.
Но как это осуществить,я не знаю.


 
Jeer ©   (2005-09-27 12:44) [1]

Copy and resize a graphic. StretchDraw
Copy part of a canvas. CopyRect
F1


 
Irinka ©   (2005-09-27 12:47) [2]

наиболее важной части программы:


// переменные
var
 Srect, Drect, PosForme: TRect;
 iWidth, iHeight, DmX, DmY: Integer;
 iTmpX, iTmpY: Real;
 C: TCanvas;
 Kursor: TPoint;

...

// Увеличиваем экран, если приложение не свёрнуто в иконку
if not IsIconic(Application.Handle) then
begin
 // Получаем координаты курсора
 GetCursorPos(Kursor);

 // PosForm представляет прямоугольник с координатами Form (image control).
 PosForme := Rect(Form1.Left, Form1.Top, Form1.Left + Form1.Width, Form1.Top + Form1.Height);

 //Показываем magnified screen если курсор за пределами формы.
 if not PtInRect(PosForme, Kursor) then
 begin

   // Далее код можно использовать для увеличения выбранной
   // части экрана. С небольшими модификациями его можно
   // использовать для уменьшения
   // экрана
   iWidth := Image1.Width;
   iHeight := Image1.Height;
   Drect := Bounds(0, 0, iWidth, iHeight);
   iTmpX := iWidth / (Slider.Position * 4);
   iTmpY := iHeight / (Slider.Position * 4);
   Srect:=
   Rect(Kursor.x, Kursor.y, Kursor.x, Kursor.y);
   InflateRect(Srect, Round(iTmpX), Round(iTmpY));

   //Получаем обработчик(handle) окна рабочего стола.
   C := TCanvas.Create;
   try
     C.Handle := GetDC(GetDesktopWindow);
     //Передаём часть изображения окна в TImage.
     Image1.Canvas.CopyRect(Drect, C, Srect);
   finally
     C.Free;
   end;
 end;
 // Обязательно обрабатываем все сообщения Windows.
 Application.ProcessMessages;
end; // IsIconic



 
MakedoneZ ©   (2005-09-27 12:58) [3]

Спасибо за предыдущее.
Если можно,еще вопрос:
Как сохранить в графический файл,некоторую область картинки формата JPEG,которая находится в Image.


 
Irinka ©   (2005-09-27 12:59) [4]

полностью программку переслала вам по почте :-)


 
Irinka ©   (2005-09-27 13:05) [5]

нужно подключить модуль JPEG:


uses JPEG


потом как обычно:


Image1.Picture.SaveToFile(FileName);


 
MakedoneZ ©   (2005-09-27 13:25) [6]


>
> Image1.Picture.SaveToFile(FileName);

Не а...
Так я сохраню ее всю.
А мне надо сохранить в файл ту область,которую я выделю при помощи мышки.
Мне как бы надо выделить мышкой верхний левый угол,нижний правый,и затем занести получившийся прямоугольник с поместившейся в него частью картинки в TRect,а его в свою очередь,сохранить в графический файл.

PS.
> полностью программку переслала вам по почте :-)

Ничего нет в почте.
Я то уж подумал,раз в жизни,девушка ради меня. :)


 
Irinka ©   (2005-09-27 13:32) [7]

песлала только сегодня, еще не дошло :-)


 
MakedoneZ ©   (2005-09-27 13:34) [8]


> песлала только сегодня, еще не дошло :-)

Издевайтесь.



Страницы: 1 вся ветка

Текущий архив: 2006.03.05;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.033 c
1-1138691166
ORMADA
2006-01-31 10:06
2006.03.05
MainMenu+MDI


5-1126071505
MacroDenS
2005-09-07 09:38
2006.03.05
Написание компонента с нуля!


2-1139929083
VanDet
2006-02-14 17:58
2006.03.05
Помогите мне решить еще одну задачу (Пожалуйста, Пожалуйста, Пож)


1-1138789238
Sapersky
2006-02-01 13:20
2006.03.05
Конвертер заголовков DLL


2-1139850113
YK
2006-02-13 20:01
2006.03.05
Какие ещё библиотеки??? И в чем дело??