2012-11-09 3 views
1

내가 더 큰 이미지로 모든 이미지를 얻기 위해 사투를 벌인거야 적용; 스케일링은 외부에 적용됩니다 (이미지에 중계되지 않는 여러 가지 중 하나 일 수 있음). 이들은 I 순간에 취하고 단계입니다여러 이미지

  1. 계산 배열의 각 이미지에 대한 큰 이미지의 크기 (1000x1000 말)

  2. 종횡비를 계산한다.

  3. 그것이

  4. 이 하나 개의 차원을 찾기 위해 전체 이미지 크기/화면 비율의 제곱근을 (예를 들어 6 % 전체 이미지) 필요한 것을 % 규모 찾을 수 있습니다 (그들은 모두 서로 다른)

  5. 우리가 알고있는면을 가로 세로 비율로 곱하면 다른 치수가됩니다. 새로운 계산 된 값에 이르기까지 이미지가

  6. (지금 heres는 메신저 문제 가진)의 축소 이미지를 맞는 큰 이미지 공간을 찾기를. 여러가있는 경우 하나를 선택

  7. 규모 무작위. 이미지까지

  8. 반복이 가득합니다. 에 맞게 필요한 약 4000 이미지가 있습니다.

작성을위한 유용한 정말 작은 이미지 (1 × 1 등 2 × 2 × 2)의 꽤 많이 있습니다. 문제는 무작위 방법이고 첫 번째 공간 방법은 좋지 않으며 일반적으로 적합하지 않은 일부 이미지로 끝납니다.

차원의 모든 참여 아는 이미지를 넣을 수있는 가장 좋은 장소를 선택 할 수있는 알고리즘이 있습니까? 회전 내가 현재 자바를 사용하고

(그래서 100x50이 50X100으로 처리 할 수 ​​있습니다) 잘하지만 문제는 모든 언어에 적용됩니다.

답변

1

이 필드라는 정수 프로그래밍에 속하는보고있는 알고리즘. 이것은 모든 입력이 (실수가 아닌) 정수 인 최적화 문제에 대한 솔루션입니다. 당신이 묻는 특정 문제는 bin packing이라는 이름으로갑니다. this page에이 문제의 예제 코드가 있습니다.

+0

그 해결책은 회전을 허용하는 것처럼 보이지만 NP 어려운 문제로 인해 회전을 허용하기가 매우 어려울 수 있습니다. – exussum

+0

@ user1281385 이러한 종류의 문제를 적절하게 존중하는 것이 중요합니다. 그들이 실제로하는 것보다 쉽다는 것이 가장 큰 위험입니다. 당신은 이것에 대한 감사를 개발 한 것 같습니다. – eh9