procedure RgnWindow();
begin
var
rgn1,rgn2: HRGN;
x,y,w,h, i: Integer;
begin
w := img1.Width;
h := img1.Height;
rgn1 := CreateRectRgn(0, 0, w, h);
for x := 0 to w - 1 do
begin
for y := 0 to h - 1 do
begin
if img1.Canvas.Pixels[x,y] = clwhite then
begin
rgn2 := CreateRectRgn(x, y, x+1, y+1);
CombineRgn(rgn1, rgn1, rgn2, RGN_XOR);
DeleteObject(rgn2);
end;
end;
end;
SetWindowRgn(Handle, rgn1, True);
Self.Width := w;
Self.Height := h;
end;
Img1为TImage控件。
根据图片的形状建立窗口。