Firemonkey2로 버전업 된 후로 참 많은 것이 변했습니다.
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라는 구조체를 이용하는군요 구글링에도 없는 따끈한 정보입니다. 실은 많이 안찾아 봣습니다. -_-;