PHP를 사용하여 3 개의 이미지를 자동으로 정렬하고 작은 이미지로 조정 하시겠습니까?

StackOverflow https://stackoverflow.com/questions/1402867

  •  05-07-2019
  •  | 
  •  

문제

이것이 PHP에서도 가능한지 모르겠지만, 여기에 누군가가 방법을 알게 될 것입니다. 현재 사용자가 사이트 전체에서 사용할 전신 메인 아바타를 사용자 정의 할 수있는 프로젝트를 진행하고 있습니다. 맞춤형 아바타를 만들기 위해 선택할 수있는 다양한 얼굴, 머리카락 등 투명한 PNG 이미지가 있습니다. 나는 이것을 잘하고 있지만 여기에는 어려운 부분이 있습니다. 얼굴, 머리카락 및 수염 (수컷 인 경우)을 사용할 수 있고 포럼 게시물 등의 작은 아바타로 사용될 80x80 이미지를 자동으로 만들고 싶습니다.

이것에는 몇 가지 장애물이 있습니다. 첫째, 모든 이미지는 187x404입니다 (이미지의 큰 양이 투명하고, 캐릭터 본체 이미지는 이미지를 쌓아서 달성되므로 얼굴 이미지가 실제로 크지 않습니다). 이 작업을 위해서는 이미지가 모든 추가 공간이 제거되고 실제 얼굴, 모발 또는 수염 부분이 80x80 지점에 표시되도록 효과적으로 자동 자르기가되어야합니다.

두 번째 문제는 일부 머리카락이나 수염 (전체 크기의 얼굴 이미지에 배치 될 때)이 80x80을지나 잘게 흘린다는 것입니다. 따라서 이미지는 전체 크기로 함께 조각 한 다음 80x80에 맞게 크기를 조정해야합니다.

나는 3 개의 이미지를 하나로 결합하는 기본 방법을 알고 있습니다 (PHP와 서로 위에 2-3 투명 PNG 이미지를 결합하십시오.), 그러나 그것은 내가 얻은 한 멀리 있습니다. 내가 미쳤고 이것이 불가능하다면 말해줘. 나는 아마 이것을 과도하게 복잡하게하고있을 것입니다. 그래서 당신이 이것을 달성하는 더 쉬운 방법을보고 분명히 더 쉬운 방법을보고 싶다면, 나는 그것을 듣고 싶습니다.

도움이 되었습니까?

해결책

가장 쉬운 방법은 이미지의 같은 영역에서 항상 얼굴/머리/수염에 맞는 것입니다. 그런 다음 그 영역을 자르십시오.

필요한 경우 이미지의 사각형을 지정하여 각 이미지에 대해 추가 데이터를 저장할 수 있습니다. ~ 해야 하다 작은 아바타에서 볼 수 있습니다. 그런 다음 구성된 모든 이미지 에서이 사각형의 최대 끝을 가져 가서 작물+를 작은 아바타 크기로 줄입니다.

그러나 PNG 이미지를 몇 픽셀 (예 : 83x83-> 80x80)으로 크기로 조정하면 특히 정의 된 가장자리가 많은 이미지의 품질을 실질적으로 줄일 수 있습니다. 새로운 이미지에는 원본 이미지에서 4 픽셀로 균등하게 분할되는 새 이미지에 많은 픽셀이 많기 때문에 날카로운 모서리가있는 이미지에서는 흐릿하게됩니다.

따라서 초상화에 맞게 이미지를 축소시키는 것은 어렵지만 품질도 줄어 듭니다. 대신 수염을 잘라!

다른 팁

먼저 먼저 결정, 자르기, 크기 조정 또는 둘 다의 조합 (더 큰 광장으로 자르고 크기를 조정해야 함)을 결정해야한다고 생각합니다.

어쨌든, 이미 이미지를 하나로 결합한 경우 PHP에서 세 가지 옵션 모두 쉽게 수행 할 수 있습니다. 보세요 imagecopyresampled ().

나는 이것을 과도하게 단순화하고 있지만 시도해 볼 수 있습니다.

  1. 최대 페이스 크기 치수를 추적하십시오.

  2. 복합 이미지를 임시 파일로 출력하십시오.

  3. 1 단계에서 가장 큰 값의 크롭 제곱

  4. 자른 이미지 부분을 80 x 80으로 크기를 조정하십시오

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top