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

Вниз

Как вырезать фрагмент изображения при изменённом масштабе?   Найти похожие ветки 

 
Zhentos   (2008-07-09 12:27) [0]

Здравствуйте.
Очевидно, что нужно использовать коэффициент изменения масштаба. Делаю так:

var
MyRect, MyOther: TRect;
             kf: real;
begin
kf := InitHW / Image1.Width; //вычисляю коэффициент
MyRect := Rect(Round(Shape1.Left * kf), Round(Shape1.Top * kf), Round((Shape1.Left + Shape1.Width) * kf), Round((Shape1.Top + Shape1.Height) * kf)); //копируемая область с учётом положения шейпа.
MyOther := Rect(0, 0, Round(Shape1.Width * kf), Round(Shape1.Height * kf)); //новая область
Image1.Canvas.CopyRect(MyOther, Image1.Picture.Bitmap.Canvas, MyRect); //вырезаю и вставляю
Shape1.Left := 0;
Shape1.Top := 0;
Image1.Proportional := false;
Image1.Stretch := false;
Image1.Picture.Bitmap.Width := Shape1.Width;
Image1.Picture.Bitmap.Height := Shape1.Height;
Image1.Width := Shape1.Width;
Image1.Height := Shape1.Height;
Image1.Proportional := true;
Image1.Stretch := true;
Image1.Picture.SaveToFile(ExtractFilePath(paramstr(0)) + "Picture.bmp");
end;


странно, что при трасировке копируемый фрагмент соответствует нужному мне фрагменту, а на выходе четвертинка необходимого мне фрагмента.


 
Zhentos   (2008-07-09 12:40) [1]

мда, поспешил я с вопросом...

в общем есть контакт.


 
brother ©   (2008-07-09 13:00) [2]

пока набирал - озарило? )))) вот так всегода)))


 
Leonid Troyanovsky ©   (2008-07-09 13:11) [3]


> brother ©   (09.07.08 13:00) [2]

> пока набирал - озарило? ))))

Штирлиц подумал. Ему понравилось.
Штирлиц подумал еще раз.

--
Regards, LVT.



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

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

Наверх




Память: 0.47 MB
Время: 0.013 c
1-1196253404
Elec3C
2007-11-28 15:36
2008.08.10
Приоритет программ через CreateProcess


2-1215453791
Hmel15
2008-07-07 22:03
2008.08.10
Новичок, делаю программу, но многого не понимаю! Помогите!


15-1213883179
Dmitry S
2008-06-19 17:46
2008.08.10
сила/ускорение/скорость


2-1215441846
lewka
2008-07-07 18:44
2008.08.10
16-ричный код палитры цветов ТColorDialog


15-1214451442
Slider007
2008-06-26 07:37
2008.08.10
С днем рождения ! 26 июня 2008 четверг