名前 題名 ▼ 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, []); を有効にした場合です. > > GIF,JPEG,PNG画像ファイル及びLZH,ZIPファイルをアップロードできます.600 x 1200 ピクセルを超える画像は縮小表示されます(画像クリックで拡大表示). (上限122000(120k)バイト) 削除キー Link