Delphi 2009에서 이미지의 현재보기 크기를 얻는 방법
문제
타임 지로 표시되는 이미지의 현재 크기를 얻고 싶습니다.이 객체는 비례 속성을 true로 설정하고 기본 형식으로 클라이언트에 정렬됩니다. 따라서 양식의 크기를 조정할 때 해당 이미지의 현재 크기를 얻고 싶습니다. 캔버스 크기는 해당 이미지의 실제 크기가 아닙니다. 현재 크기를 얻는 것은 실제 이미지 크기에 대한 현재 이미지 크기 존중의 백분율이 무엇인지 보여줄 수 있습니다. 미리 감사드립니다
해결책
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
다른 팁
나는 이것을 할 내장 방법이 있다고 생각하지 않습니다. 당신은 그것을 계산해야 할 수도 있습니다. 이 같은:
- 캔버스의 높이와 너비를 얻으십시오.
- 이미지의 높이와 너비를 얻으십시오
Picture
재산. - 캔버스 크기의 그림 크기의 비율을 계산하십시오.
- 두 비율 중 어느 것이 더 작은 지 비율입니다.
이 그림을 가상 tcanvas (또는 무엇이든)에로드 한 다음 속성을 거짓으로 남겨 두십시오. 이제 그림의 원래 크기를 검색 할 수 있습니다. 이미지가 일반적으로 매우 크면 외부 그래픽 라이브러리를 사용해야 할 수도 있습니다.
제휴하지 않습니다 StackOverflow