0
아래 예에서 빨간색 배경의 사각형 (512x260)에 가로로 256x256 픽셀의 두 비트 맵 (노란색과 파란색)을 가로로 (0-255와 256-511) . 스케일링은 없습니다. 질문은 왜 배경의 수직 픽셀 선 (빨간색)이 둘 사이에서 볼 수 있습니까? 델파이는 10.1delphi fmx DrawBitmap 함수
unit Unit1;
interface
uses
System.SysUtils, System.Types, System.UITypes, System.Classes,
System.Variants,
FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.Objects,
FMX.Controls.Presentation, FMX.StdCtrls;
type
TForm1 = class(TForm)
PaintBox1: TPaintBox;
procedure PaintBox1Paint(Sender: TObject; Canvas: TCanvas);
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
{ Private declarations }
bm1: TBitmap;
bm2: TBitmap;
br: TStrokeBrush;
bShift: Boolean;
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.fmx}
procedure TForm1.FormCreate(Sender: TObject);
begin
bm1 := TBitmap.Create(256, 256);
if bm1.Canvas.BeginScene then
try
bm1.Canvas.Fill.Color := TAlphaColorRec.Yellow;
bm1.Canvas.FillRect(RectF(0, 0, bm1.Width, bm1.Height
),
0, 0, AllCorners, 1);
finally
bm1.Canvas.EndScene;
end;
bm2 := TBitmap.Create(256, 256);
if bm2.Canvas.BeginScene then
try
bm2.Canvas.Fill.Color := TAlphaColorRec.Blue;
bm2.Canvas.FillRect(RectF(0, 0, bm2.Width, bm2.Height
),
0, 0, AllCorners, 1);
finally
bm2.Canvas.EndScene;
end;
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
bm1.Free;
bm2.Free;
end;
procedure TForm1.PaintBox1Paint(Sender: TObject; Canvas: TCanvas);
var
RecPic: TRectF;
RecCanvas: TRectF;
RecCanvas2: TRectF;
begin
if Canvas.BeginScene then
try
Canvas.Fill.Color := TAlphaColorRec.White;
Canvas.FillRect(RectF(0, 0, PaintBox1.Width, PaintBox1.Height
),
0, 0, AllCorners, 1);
Canvas.Fill.Color := TAlphaColorRec.Red;
Canvas.FillRect(RectF(0, 0, 511, 260
),
0, 0, AllCorners, 1);
RecPic := RectF(0, 0, 255, 255);
RecCanvas := RectF(0, 0, 255, 255);
Canvas.DrawBitmap(bm1, RecPic, RecCanvas, 1);
RecCanvas2 := RectF(256, 0, 511, 255);
Canvas.DrawBitmap(bm2, RecPic, RecCanvas2, 1);
finally
Canvas.EndScene;
end;
end;
end.
고마워요에게
답장을 보내 주셔서 감사합니다. 그러나 "오른쪽 및 아래쪽 테두리가 비트 맵 그리기 영역에서 제외되었습니다"라는 정보를 어디서 발견 했습니까? 나는 결코 그것을 들었다. – epo2001
그냥 경험 :) –