2016-11-18 3 views
0

이미지 1 이미지 1이미지 2 2 개의 이미지가 있습니다.다른 이미지 크기를 기준으로 이미지 비율을 조정하고 가로 세로 비율을 유지하기위한 알고리즘

이미지 1의 크기는 512 (너비) x 515 (높이)입니다.

다음으로 이미지 2 크기는 256 (너비) x 256 (높이)입니다.

이미지 2는 워터 마크로서 사용될되고 이미지 1의 상단에 배치된다.

원하는 이미지 이미지 2 크기는 이미지 1 크기에 따라 달라집니다. 이미지 2 이미지 1의 크기에 따라 이미지가으로 크기가 조정될 수 있습니다.

새로운 크기 화상 2의 (폭 & 높이) 20퍼센트의 1 이미지의 크기와 동일한 시간 - 종횡비를 유지해야한다.

새 크기 (너비 & 높이)를 찾는 알고리즘은 입니다. 이미지 2?

지금은 (20%/100) * 512을 사용하여 크기를 조정하지만 이미지 2 종횡비는 보존하지 않습니다.

+0

영역별로 20 % 또는 축 중 하나를 이동하고 다른 축은 가로 세로 비율을 유지하기 위해 크기가 다시 조정됩니까? – samgak

+0

@samgak 너비와 높이가 이미지 1보다 20 % 작습니다. 나는이 부분을 할 수있다. 문제는 이제 비율 조정 후에도 동일한 길이가되도록하려는 가로 세로 비율입니다. – Programmer

답변

2

두 이미지의 가로 세로 비율이 같지 않으면 너비와 높이를 모두 20 %로 조절하고 가로 세로 비율을 유지하는 것이 수학적으로 불가능합니다.

따라서 축척 기준으로 사용할 축을 선택하고 다른 축을 종횡비를 유지하는 크기로 축척합니다.

new_image1_width = 512 * (20/100) = 102.4 

그럼 종횡비 보존 새로운 높이를 계산 :

original_aspect_ratio = image2_width/image2_height = 256/256 = 1 
new_image1_height = 102.4/original_aspect_ratio = 102.4 

또는 그것을 다른 방향 (이 시간 비율을 곱한) 수행 폭을 사용

new_image1_height = 515 * (20/100) = 103 
original_aspect_ratio = image2_width/image2_height = 256/256 = 1 
new_image1_width = 103 * original_aspect_ratio = 103 

임의의 이미지 크기와 임의의 스케일 인자를 처리해야하는 경우, 당신이 원하는 규칙에 따라 두 가지 방법을 전환하십시오. 예 : 이미지 높이보다 큰 높이를 제공하지 않는 한 비율 조정 높이를 사용하고,이 경우 두 번째 방법을 사용하거나 그 반대의 경우도 가능합니다.

+0

죄송합니다. 이미지 크기가 512 * 512가 아니라 512 * 512임을 알지 못했습니다.대답을 편집했습니다 – samgak

+0

나는 이것을 시도하고 있으며 분만에 알려드립니다 – Programmer

+0

두 번째 이미지가 첫 번째 이미지 앞에 놓여지는 워터 마크 이미지임을 알려드립니다. 단지 몇 퍼센트 작아 져야하고 첫 번째 이미지의 오른쪽 상단에 배치됩니다. 사실 두 이미지의 크기를 아는 사람이 아무도 없습니다. 이 질문에서 볼 수있는 숫자는 단지 예일뿐입니다. 자동으로 크기를 조정하고 그 비율을 유지하는 것은 내가 고심하고있는 것입니다. 크기가 조정 된 이미지가 원본 이미지와 크게 달라 보이지 않도록하고 싶습니다. – Programmer