문제

타임 지로 표시되는 이미지의 현재 크기를 얻고 싶습니다.이 객체는 비례 속성을 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

다른 팁

나는 이것을 할 내장 방법이 있다고 생각하지 않습니다. 당신은 그것을 계산해야 할 수도 있습니다. 이 같은:

  1. 캔버스의 높이와 너비를 얻으십시오.
  2. 이미지의 높이와 너비를 얻으십시오 Picture 재산.
  3. 캔버스 크기의 그림 크기의 비율을 계산하십시오.
  4. 두 비율 중 어느 것이 더 작은 지 비율입니다.

이 그림을 가상 tcanvas (또는 무엇이든)에로드 한 다음 속성을 거짓으로 남겨 두십시오. 이제 그림의 원래 크기를 검색 할 수 있습니다. 이미지가 일반적으로 매우 크면 외부 그래픽 라이브러리를 사용해야 할 수도 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top