문서의 선택한 두 판 사이의 차이를 보여줍니다.
| 양쪽 이전 판 이전 판 다음 판 | 이전 판 | ||
|
algorithms:이미지썸네일crop크기계산 [2010/12/08 17:38] kwon37xi |
algorithms:이미지썸네일crop크기계산 [2010/12/09 11:22] (현재) kwon37xi |
||
|---|---|---|---|
| 줄 4: | 줄 4: | ||
| C#으로 만들어진 썸네일의 가로/ | C#으로 만들어진 썸네일의 가로/ | ||
| - | 이의 | + | 이의 |
| + | <code java> | ||
| + | public Dimension calculateCropSize(Dimension originalSize, | ||
| + | Dimension thumbnailSize) { | ||
| + | double originalAspectRatio = originalSize.getWidth() | ||
| + | / originalSize.getHeight(); | ||
| + | double thumbnailAspectRatio = thumbnailSize.getWidth() | ||
| + | / thumbnailSize.getHeight(); | ||
| + | |||
| + | if (originalAspectRatio == thumbnailAspectRatio) { | ||
| + | return new Dimension(originalSize); | ||
| + | } | ||
| + | |||
| + | int targetWidth = originalSize.width; | ||
| + | int targetHeight = originalSize.height; | ||
| + | |||
| + | if (thumbnailAspectRatio > originalAspectRatio) { | ||
| + | targetHeight = (int) (originalSize.getWidth() * (thumbnailSize | ||
| + | .getHeight() / thumbnailSize.getWidth())); | ||
| + | } else { | ||
| + | targetWidth = (int) (originalSize.getHeight() * thumbnailAspectRatio); | ||
| + | } | ||
| + | |||
| + | return new Dimension(targetWidth, | ||
| + | } | ||
| + | </ | ||