2009-08-11 9 views
3

TImage로 표시되는 이미지의 현재 크기를 가져 오려면이 개체의 Proportional 속성이 True로 설정되어 있고 Client with main form에 정렬되어 있습니다. 그래서 폼의 크기를 변경할 때 캔버스 크기가 아닌 이미지의 현재 크기를 얻고 싶습니다. 현재 크기 가져 오기 실제 이미지 크기에 대한 현재 이미지 크기의 백분율을 표시 할 수 있습니다. 미리 감사드립니다.Delphi 2009에서 이미지의 현재보기 크기를 얻는 방법

답변

1

Image1.Picture.Width 또는 .Height와 Image1.Width 또는 .Height를 비교할 수 있습니다. 이미지가 수평 또는 수직 차원을 사용하여 비례 늘어나는 것과 경우

당신이 비율의 두 가지의 비교해야합니다 알고 : 곱셈에 분열을 변환하는 수학적 트릭을 사용하여

if Image1.Width/Image1.Height > Image1.Picture.Width/Image1.Picture.Height then 
    Result:=Image1.Picture.Width/Image1.Width 
else 
    Result:=Image1.Picture.Height/Image1.Height; 

을, 당신은 피할 수 float 값으로의 변환 또한 다음을 사용하여 조금 더 빠르게 계산됩니다.

if Image1.Width*Image1.Picture.Height >Image1.Picture.Width*Image1.Height then 
4

저는 기본 제공 방법이 없다고 생각합니다. 방금 계산해야 할 수도 있습니다. 이 같은 것을 :

  1. 캔버스의 높이와 너비를 가져옵니다.
  2. 이미지의 Picture 속성의 높이와 너비를 가져옵니다.
  3. 그림 크기와 캔버스 크기의 비율을 계산합니다.
  4. 두 비율 중 작은 쪽이 비율입니다.
+0

Drat! 이 세 가지 답변을 게시 할 때 세 번의 키 스트로크와 클릭이있었습니다. 넌 너무 빠르다, 메이슨.

0

이 그림을 가상 TCanvas (또는 무엇이든)에로드 한 다음 Proportional을 False로 둡니다. 이제 그림의 원래 크기를 가져올 수 있습니다. 이미지가 대개 매우 크다면 어쩌면 외부 그래픽 라이브러리를 사용해야합니다.

관련 문제