|
DoubleBuffered = true 로 설정을 해보시는 것도 하나의 방법입니다. 깜빡 거림을 조금 줄이실 수 있으실 껍니다.
하지만, 어떻게 구현되었냐에 따라서 이미지 처리 속도는 완전히 달라집니다. 특히 투명 처리는 더 그렇습니다. 처리가 많은 게임같은 경우에는 VCL로 하기보다 OpenGL 같은 그래픽 쪽 라이브러리를 사용하시는 것이 좋으실 것 같습니다.
그리고, 어떻게 그림을 불러서 그리셨는지 알려 주셨으면 좋겠네요. 일반적인 방법은 에러가 나지 않거든요...
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner)
{
DoubleBuffered = true;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
// 그림 불러오기
Image1->Picture->LoadFromFile("C:\\Work\\지도.bmp");
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
// 원 그리기
Image1->Canvas->RoundRect(10, 10, 50, 50, 60, 60);
}
//---------------------------------------------------------------------------
장재욱 님이 쓰신 글 :
: 이미지에 그림을 불러오거나
:
: 이미지 위에 마우스 드래그에 의한 그림을 그리는 건 하겠습니다.
:
: 그런데, 불러온 이미지 위에 그림을 그리려니
:
: 에러가 뜨는 군요...
:
: 그래서, 불러온 이미지 위에 투명한 이미지를 불러서
:
: 그리니까 엄청 버벅 거리는데...
:
: 어떻게 할까요?
:
: 도와 주세요...
|