Delphi Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
델파이 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
FreePascal/Lazarus
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
델마당
볼랜드포럼 광고 모집

델파이 팁&트릭
Delphi Programming Tip&Tricks
[301] XE3.FM2에서 Control을 Bitmap으로 내보내기 및 Bitmap.Pixels 사용하기
김현수(Humphery) [hjfactory] 5799 읽음    2013-02-28 12:59

간단한 팁입니다.


파이어몽키 많이 변했죠?? 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 입니다.


+ -

관련 글 리스트
301 XE3.FM2에서 Control을 Bitmap으로 내보내기 및 Bitmap.Pixels 사용하기 김현수(Humphery) 5799 2013/02/28
(링크)     FireMonkey Tip'N Tricks > XE3.FM2에서 Control을 Bitmap으로 내보내기 및 Bitmap.Pixels 사용하기
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.