기금넷 공식사이트 - 주식 지식 - Delphi의 캔버스가 너무 느리면 어떻게 해야 하나요?
Delphi의 캔버스가 너무 느리면 어떻게 해야 하나요?
이렇게 글쓰는게 느리지 않은게 이상하네요
캔버스가 느린 건 아니고, 이런 용도로 사용하는 방법이 아닙니다. 캔버스 그리기를 과소평가하지 마세요. 델파이 vcl에 캡슐화 이 방법이 느리다고 생각하시나요?
이미지 데이터가 이미 메모리에 있기 때문에 이미지 데이터를 스트림에 로드할 필요가 없습니다. 그냥 직접 조작하면 됩니다.
직접 작성해 주세요. 예: (복사하여 붙여넣기가 아닙니다!)
var
imageP1,imageP2:^TColor;
i:integer;
시작
Image1.Picture.Bitmap으로 시작
시작
PixelFormat:=pf32bit;
imageP1:=ScanLine[Height- 1];
end;
with Image2.Picture.Bitmap do
start
p>PixelFormat:=pf32bit;
imageP2:=ScanLine[Height-1];
end;
for i:= 0 ~ ( Image2.Width * Image2.Height)-1 do
시작
if imageP2^ <> $FF00FF then
imageP1^:=imageP2^; p>
inc(imageP1);
inc(imageP2)
end;
image1.Refresh;
end;
달성된 효과는 위와 동일합니다. 전제는 두 이미지 이미지의 너비와 높이가 동일해야 하며 Bmp 이미지가 필요하다는 것입니다.
하지만 속도는 여러분이 작성한 것보다 절대적으로 NNNN배 빠릅니다.
포인터 사용법만 알면 제가 제시한 예제를 완벽하게 수행할 수 있습니다. 포인터를 사용하는 것이 가장 좋습니다. 포인터는 메모리에서 직접 작동하기 때문에 프로그램의 효율성을 크게 향상시킵니다.
vcl 캡슐화는 실제로 매우 좋지만 많은 초보자는 캡슐화의 원리에 대해 잘 알지 못한 채 Vcl을 무분별하게 사용합니다. Vcl.
예를 들어, 루프에서 일부 시각적 제어 방법을 사용하면 N번의 불필요한 다시 그리기가 발생합니다. (웃음! 느리지 않습니다. 이상하네요.) 따라서 델파이 애호가들은 언젠가 vcl에서 영양을 섭취해야 합니다. 델파이와 VC가 같은 수준에 있다는 것을 확인하세요
- 관련 기사
- 세계가 인정한 가장 아름다운 국가 Top 10
- 무림외전 매표소
- 볼리비아 스카이미러로 갑니다! ! 가는 방법을 알려주세요! !
- 절강 위성 TV 슈퍼 818 자동차 카니발 밤 라이브 방송(절강 위성 TV 슈퍼 818 자동차 카니발 밤 프로그램 목록)
- 코벨 콜라겐 크리스탈 마스크 정품 확인 방법은 무엇인가요?
- PlayerUnknown's Battlegrounds 14.2 사막에서 일반적으로 사용되는 전술 지점 공유
- 천진 법의학 감정 기관 목록
- 호리키타 마키는 누구입니까?
- Changchun Biotech과 Changchun Changsheng은 같은 회사인가요?
- 역경 속에서도 성공을 거둔 연예인의 예