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

Вниз

Вписать картинку в рамку с закругленными краями   Найти похожие ветки 

 
DenKa   (2011-03-25 22:13) [0]

Собственно делаю примерно так:
...
// подгоняю картинку в размер региона, в который она будет вписана
jpg.Loadfromfile("pict.jpg");
bmp.Width := 272;
bmp.Height:= 382;
bmp.Canvas.StretchDraw( bmp.Canvas.Cliprect, jpg );

// рисую
Rgn := CreateRoundRectRgn(114, 158, 114+272, 158+382, 20, 20);
Canvas.Brush.Bitmap := bmp;
PaintRgn(Canvas.Handle, Rgn);

..и получаю картинку, состоящую из 4-х порезанных кусков переставленных местами. Примерно такую:
http://s003.radikal.ru/i202/1103/0d/52c59f108b37.jpg

Почему оно так и как исправить?


 
DenKa   (2011-03-25 23:11) [1]

Причину этого вроде понял: Canvas.Brush.Bitmap привязывает к канве заданную картинку, начиная с позиции 0,0. А поскольку размер канвы больше размера картинки, то картинка начинает дублироваться до полного заполнения канвы. Затем уже PaintRgn "вырезает" регион с заданными координатами и "попадает" на место пересечения нескольких картинок, отрисованных на канве.
Получается нужно начать "рисовать" на канве картинку с заданной позиции, но  Canvas.MoveTo отчего-то тут не срабатывает..


 
Игорь Шевченко ©   (2011-03-25 23:40) [2]


> Вписать картинку в рамку с закругленными краями [D7


SetClipRgn


 
Игорь Шевченко ©   (2011-03-25 23:41) [3]

Тьфу, SelectClipRgn


 
DenKa   (2011-03-26 09:11) [4]

Вау, спасибо!

Сталобыть будет так:

Rgn := CreateRoundRectRgn(114, 158, 114+272, 158+382, 20, 20);
SelectClipRgn(Canvas.Handle, Rgn);
Canvas.Draw(114, 158, bmp);



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

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

Наверх




Память: 0.47 MB
Время: 0.008 c
15-1300321466
Дмитрий Тимохов
2011-03-17 03:24
2011.07.03
Нашел по рекламе на delphimaster.ru


15-1299066755
xayam
2011-03-02 14:52
2011.07.03
Ментальные карты


11-1234851691
xz386
2009-02-17 09:21
2011.07.03
фукция копирования


2-1301294374
S_K
2011-03-28 10:39
2011.07.03
работа с процедурными и перечисляемыми типами данных


2-1301073992
awer
2011-03-25 20:26
2011.07.03
Не работает SetTimer ((