2016-11-25 1 views
0

1920, 1017 픽셀 이미지의 좌표 821, 435에있는 점을 고려하여 중간에 어딘가에 착륙합니다. 이제 이미지 크기를 1243, 633 픽셀로 줄이십시오. 분명히, 우리의 요점은 더 이상 그 좌표에 있지 않지만 이미지와 함께 축소되었습니다. 새로운 점의 좌표는 어떻게 계산할 수 있습니까?이미지 보존 지점 위치의 크기 분해능

다음의 경우

originalX = 1920 & newX = 1243을 가정하고 우리가 지금 첫 번째 값 x에 대한 해결하고 있다는 내가 사용할 수 0.64739583를 얻을 수 newX/originalX을했습니다

(결국 y의 규모를하고) originalX * 0.64739583을 수행하고 1243을 얻으려면 newX64.739583%originalX 인 것을 나타냅니다. 이제 이전 지점 인 x, 821로 돌아가십시오. 새로운 지점의 xoriginalX * 0.64739583 = 531을 제외한 482이 될 것으로 예상됩니다. 482531 아니므 점은 이러한 설명 계산도 잘못된 경우 (정확한 계산이 될 것입니다 무엇 64.7

의 스케일링 %로 예상하고 같이 일치와 사진의 일부라는 것을하지 않는다 잘못 스케일링) 스케일 된 점의 새로운 좌표를 얻을 수 있습니까?

점 몇 가지 더 많은 예제

이전/확장 후 :

  • old = {width=1920, x=1807, y=996}, new = {width=1280, x=1167, y=698}
  • old = {width=1920, x=1178, y=814}, new = {width=1280, x=1138, y=516}
  • old = {width=1920, x=5, y=831}, new = {width=1517, x=5, y=693}
+0

'의 X 모양입니다 482 명으로 예상 - 누구에게서 기대 되는가? – MBo

+0

@MBo 지점은 직접 중심에 있고 약간 오프셋 된 이미지에서 GUI의 특정 지점입니다. 이것은 프로그램의 스크린 샷입니다. 'x'는'482 '가 될 것으로 예상되는데, 프로그램의 해상도를 바꾸면 (이 경우에는 최대화), 해상도는 더 낮아집니다. '821'은 최대화되지 않은'x'이고, 482는 이후입니다. – Scarsz

답변

0

것은 이러한 위치는 정말

같은 선형 다음 확장, 장소를하지 않는 걸릴 경우
NewX = X * NewWidth/OldWidth 

대신 나는 다음을 참조 : 아무 스케일링 없지만 중심 위치를 유지하면서 이미지의 변화

middle of 1920 = 960 
960 - 821 = 139 
middle of 1243 = 621 
621 - 482 = 139 ! 

그래서 변환 법은 (내가 하나의 예를 들어 그것을 주장 할 수 없습니다)

NewX = NewWidth/2 + (OldX - OldWidth/2) 
+0

불행히도 완벽한 착용감은 아니지만 필자가 제공 한 샘플에 대한 좋은 시도입니다. 나는 더 이상을 더했다. 나는 아직도 그것에 관해 우둔하다. – Scarsz

+0

이러한 마법 변형에 대한 그림을 보여줄 수 있습니까? (첫 번째 예제에서는 오른쪽 가장자리와 같은 차이점을 유의하십시오) – MBo

관련 문제