728x90
반응형
WPF & C# - 이미지 가로세로비율 구하기 ( rate / ratio / 비율 / int / double ) |
이미지 세로값 구하기 - 가로 고정 ( 가로고정 사이즈가 100 이상일 경우 )
이미지 가로값 구하기 - 세로 고정 ( 세로고정 사이즈가 100 이상일 경우 )
주의
int 형에서 ( img.NaturalVideoHeight / img.NaturalVideoWidth ) 이렇게 묶으면 대부분 1이나 2만 나오고 소수점이 안나온다.
아니면 Double 형으로 변환하고 해야 하는데, 사실 귀찮다. 어차피 int 형 값이 나올텐데 궂이...
이미지 세로값 구하기 - 가로 고정 ( 가로고정 사이즈가 없을 경우 )
1 2 | int rateW = 100 * img.NaturalVideoWidth / img.NaturalVideoHeight; // (W:H = rateW:1) grid1.Height = grid1.Width * 100 / rateW; | cs |
이미지 가로값 구하기 - 가로 고정 ( 가로고정 사이즈가 없을 경우 )
1 2 | int rateH = 100 * img.NaturalVideoHeight / img.NaturalVideoWidth; // (W:H = 1:rateH) grid1.Width = grid1.Height * 100 / rateH; | cs |
주의
int 형에서는 큰수를 먼저 만이렇게 묶으면 대부분 1이나 2만 나오고 소수점이 안나온다.
아니면 Double 형으로 변환하고 해야 하는데, 사실 귀찮다. 어차피 int 형 값이 나올텐데 궂이...
사실... 가장 쉽게 하는방법은?
가로 기준으로 이미지 세로값 구하기 - 가로 고정
1 2 3 | double imgW = 1024; double imgH = 0; imgH = Convert.ToDouble(imgW) * bi.Height / bi.Width; bi.Height = imgH; | cs |
세로 기준으로 이미지 가로값 구하기 - 세로 고정
1 2 3 | double imgW = 0; double imgH = 768; imgW = Convert.ToDouble(imgH) * bi.Width / bi.Height; bi.Width = imgW; | cs |
가로/세로 기준보다 작사이즈 변경하기 - 가로/세로 고정
1 2 3 | double imgW = 0; double imgH = 768; imgW = Convert.ToDouble(imgH) * bi.Width / bi.Height; bi.Width = imgW; | cs |
센스~!
Double 형으로 계산한 후에 결과값은 int 형으로 자동 변환된다.
그래서 간단하게 공식중에 아무거나 하나만 Double 형 으로 컨버팅해주면 해결된다. ^^
728x90
반응형