간단한 팁입니다.
파이어몽키 많이 변했죠?? TControl은 말할 것도 없고 TBitmap도 많은 내용이 변했네요.
Unit test에서 특정 Pixel의 색상을 얻어오고자 할때 기존 Bitmap.Pixels이 없어진 것을 확인 후 깜짝 놀랐습니다.
자... 그럼 제가 삽질로 얻어온 내용을 공유하도록 합니다.
| Control을 Bitmap(TImage)으로 내보내기
var
Bitmap: TBitmap;
Map: TBitmapData;
begin
Bitmap := TBitmap.Create(Round(Panel1.Width), Round(Panel1.Height));
try
Bitmap.Canvas.BeginScene;
// Bitmap으로 내보내기
Bitmap.Assign(Panel1.MakeScreenshot);
// Pixel의 값을 원하실 때는 이렇게
Bitmap.Map(TMapAccess.maRead, Map);
//AlphaColor := Map.GetPixel(Round(X), Round(Y));
Bitmap.Unmap(Map);
Bitmap.Canvas.EndScene;
Image1.Bitmap.Assign(Bitmap);
finally
Bitmap.Free;
end;
end;
Panel1의 화면을 Bitmap으로 내보내는 코드 입니다.
특정 좌표의 값은 Map.GetPixel로 얻어오실 수 있구요 반환은 TAlphaColor 입니다.
TBitmapData라는 구조체를 이용하는군요 구글링에도 없는 따끈한 정보입니다. 실은 많이 안찾아 봣습니다. -_-;
파이어몽키 포럼도 생겼으니 종종 남기겠습니다.^^
원글은 http://blog.hjf.pe.kr/64 입니다. |