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

Вниз

Вписать рисунок в RoundRect   Найти похожие ветки 

 
Alex_C   (2012-03-05 12:12) [0]

На канвасе нужно нарисовать RiundRect и вписать в него рисунок.
Делаю так:

procedure DrawRoundRect2Canvas(FromFastDIB: TFastDIB; ToCanvas: TCanvas;
 Left, Top, Width, Height, R1, R2: integer; Alpha: Byte);
var
 DestDIB, TmpBmp, BkgPic: TFastDIB;
 y, x: integer;
 Src, Dest: PLine24;
begin
 if (Width < 5) or (Height < 5) then
   Exit;

 DestDIB := TFastDIB.Create;
 // Устанавливаем конечный размер изображения
 DestDIB.SetSize(Width, Height, FromFastDIB.Bpp);
 // Копиреум изображение из исходного источника
 SmoothResize(FromFastDIB, DestDIB, rfCatrom, nil, True);
 // Вспомогательный FastDIB с нарисованным RoundRect
 TmpBmp := FDIB_Create(Width, Height, FromFastDIB.Bpp);
 TmpBmp.SetBrush(BS_SOLID, HS_HORIZONTAL, clWhite);
 Windows.RoundRect(TmpBmp.hDC, 0, 0, Width, Height, R1, R2);

 for y := 0 to TmpBmp.Height - 1 do
 begin
   Src := TmpBmp.ScanLines[y];
   Dest := DestDIB.ScanLines[y];
   for x := 0 to TmpBmp.Width - 1 do
   begin
     //если точка (x, y) на созданном Bitmap белая,
     //то точку (x, y) на исходном Bitmap закрашиваем BackColor
     if Src[x].r = 255 then
     begin
       // А вот здесь нужно рисовать на исходном канвасе ???
     end;
   end;
 end;

 DestDIB.Free;
 TmpBmp.Free;
end;


Никак не соображу, как перейти к координатам канваса, на котором нужно рисовать?


 
Андреевич   (2012-03-05 15:14) [1]

dest[x]:=src[x];
вроде бы


 
Омлет ©   (2012-03-05 22:02) [2]

Как-то так: http://delphi-e.narod.ru/bmp_ellipse_cut.html



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

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

Наверх




Память: 0.47 MB
Время: 0.051 c
2-1339168542
Виктор1985
2012-06-08 19:15
2013.03.22
Как скомпилировать DCU из PAS файла


15-1329209570
Димка На
2012-02-14 12:52
2013.03.22
Как сделать чтобы WinControl ловил mousemove за пределами себя.?


3-1282861564
MAXHO
2010-08-27 02:26
2013.03.22
Почему может зависать база?


2-1335292096
artemchik
2012-04-24 22:28
2013.03.22
настройка Delphi


15-1351507682
ClawClaw
2012-10-29 14:48
2013.03.22
Мастерам раскрутки сайтов