delphi – 如何将图像边界更改为圆形
发布时间:2020-12-15 09:22:41 所属栏目:大数据 来源:网络整理
导读:我必须使用 Image作为通知.对于那个图像寄宿生应该是椭圆形的形状.任何人都可以帮我改变我的图像寄宿作为一个圆圈. ?我已经提到了一个示例图像10应该是一个图像组件.我可以得到它的圆形. 提前致谢. 你的拉克什 解决方法 const BORDER = 3;Var Bmp : TBitmap;
我必须使用
Image作为通知.对于那个图像寄宿生应该是椭圆形的形状.任何人都可以帮我改变我的图像寄宿作为一个圆圈.
?我已经提到了一个示例图像10应该是一个图像组件.我可以得到它的圆形. 提前致谢. 解决方法const BORDER = 3; Var Bmp : TBitmap; w,h: Integer; x,y: Integer; begin Bmp:=TBitmap.Create; try Bmp.PixelFormat:=pf24bit; Bmp.Canvas.Font.Name :='Arial'; // set the font to use Bmp.Canvas.Font.Size :=20; //set the size of the font Bmp.Canvas.Font.Color := clWhite; //set the color of the text w :=Bmp.Canvas.TextWidth(IntToStr(sped1.Value)); //calculate the width of the image h :=Bmp.Canvas.TextHeight(IntToStr(sped1.Value)); //calculate the height of the image Bmp.Width := Max(w,h) + BORDER * 2; // get a square Bmp.Height := Max(w,h) + BORDER * 2; // get a square x := (Bmp.Width - w) div 2; // center y := (Bmp.Height - h) div 2; // center Bmp.Canvas.Brush.Color := clBlue; //set the background Bmp.Canvas.FillRect(Rect(0,Bmp.Width,Bmp.Height)); //paint the background which is transparent Bmp.Canvas.Brush.Color := clRed; // circle in red Bmp.Canvas.Pen.Color := clRed; // circle in red Bmp.Canvas.Ellipse(0,Bmp.Height); // draw the circle Bmp.Canvas.TextOut(x,y,IntToStr(sped1.Value)); //draw the number img1.Picture.Assign(bmp); // assign the bmp to the image ; image.transparent = true,.stretch = true; finally Bmp.Free; end; 根据您的需要调整不同的值… 从RRUZ更新了源代码 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |