2016/2/20 (土) 22:27:31 Mr.XRAY |
[Bitmapから円形に切り取り、別のBitmapに描画するには?]
http://hpcgi3.nifty.com/e-papy/DelphiBBS/wwwlng.cgi?print+201602/16020010.txt
にレスしたのですが,FireMonkey でした.ハハハッ.
環境はちゃんと書いて欲しいよな.
で,パスでできないか,簡単なテストをしてみました.
動作確認は Windows 7 U64(SP1) + Delphi XE5(UP2) pro FireMonkey HD
procedure TForm1.Button1Click(Sender: TObject);
var
LCanvas : TCanvas;
LRect : TRectF;
LPathData : TPathData;
begin
LCanvas := ImageControl1.Canvas;
LCanvas.BeginScene;
LRect := RectF(0, 0, ImageControl1.Width, ImageControl1.Height);
OffsetRect(LRect, ImageControl1.Position.X, ImageControl1.Position.Y);
LCanvas.Stroke.Color := TAlphaColorRec.Black;
Fill.Color := TAlphaColorRec.White;
LPathData := TPathData.Create;
try
// LPathData.AddRectangle(LRect, 0, 0, []);
LPathData.AddEllipse(RectF(LRect.Left + 50,
LRect.Top + 50,
LRect.Left + 150,
LRect.Top + 150));
LPathData.ClosePath;
LCanvas.FillPath(LPathData, 0.75);
finally
LPathData.Free;
end;
LCanvas.EndScene;
end;
2 番目の図は,LPathData.AddRectangle(LRect, 0, 0, []); を有効にした場合です.
|
|