배치 이미지 자동 자르기, 고정 너비 적용 및 종횡비 유지


3

내가하려는 일에 대한 해결책을 찾기가 어렵습니다.

간단히 말해서이 이미지의 사용법은 온라인 상점을위한 것입니다.

오 티오 자르기 테두리를 사용한 IrfanView 배치 처리는 기본적으로 자르기를 정렬합니다. 처리중인 이미지에 흰색 / 검정색 또는 균일 한 경계선이 있으면 잘라 내야합니다.

그러나 이미지를 완벽한 정사각형으로 유지해야합니다. 300x300 픽셀처럼

예를 들어, 자르는 이미지의 초점이 길면 위쪽과 아래쪽에 도달 할 때까지 공백 / 여백을 자릅니다. 그런 다음 왼쪽과 오른쪽의 크기가 길이와 같은 지점으로 만 왼쪽과 오른쪽을 자릅니다. 공백 (여백)의 일부만 제거하거나 필요하면 공백 (여백)을 추가하십시오.


1
또한 IrfanView에서 일괄 변환을 수행하고 먼저 자동 자르기 테두리를 사용한 다음 크기를 조정하면 작업 할 수있는 결과를 얻을 수 있습니다. 그러나 한 번의 변환으로 두 가지를 모두 수행하는 것은 아닙니다. IrfanView가 먼저 자동 자르기를 수행 한 다음 별도로 변환을 수행하는 대신 한 번에 크기 조정을 수행하는 방법이 있습니까?
StuyvesantBlue

1
어이, IrfanView에서 일괄 처리에 대한 고급 설정의 오른쪽 하단 모서리에 처리 순서를 조정할 수있는 옵션이 있음을 알았습니다.
StuyvesantBlue

문제를 해결하면 솔루션을 답변으로 게시하십시오 ... 다른 사람에게 유용하거나 다른 사람이 개선 할 수 있습니다. :)
Hastur

1
@Hastur 이해했습니다. 이 문제를 정확하게 해결하지는 못했지만 내가 할 수있는 일을 내게 알려주었습니다.
StuyvesantBlue

답변:


3

imagemagick놀라운 옵션이 -trim있습니다. -size약 1 년 전 4500 장의 사진에 빈 단색 테두리를 제거하고 제품을 유지하기 위해 그것을 사용하는 것을 기억 합니다. 모든 이미지를 디렉토리에 넣고 a빈 디렉토리 를 만드는 것을 기억합니다 b. 그런 다음 디렉토리에서 a같은 것을 사용하여

for i in *; do convert-im6.q16 $i -trim -resize 300 ../b/$i; done

그런 다음 약 1 시간 동안 기다렸고 b단색 배경이 자르고 너비가 300 픽셀 인 4500 개의 이미지가 디렉토리에있었습니다 . 이 convert-im6.q16명령은 다른 시스템 convert또는 이와 유사한 시스템에서 약간 다르게 명명 될 수 있습니다 .


1

IrfanView를 사용하여 실행 가능한 솔루션을 달성했습니다.

파일에서 일괄 변환 / 이름 바꾸기 사용 >> 단순히 입력 파일 대화 상자에 이미지를 추가합니다.

  1. 일괄 변환 설정에서 고급 옵션을 사용한 다음 고급을 클릭하십시오.

  2. 크기 조정을 선택하고 새 크기 설정을 선택한 다음 하나 또는 둘 다 설정을 선택하십시오. 높이 / 너비에서 같은 크기를 입력하십시오 (300px 사용). 이 작업은 이미지를 해당 크기의 최대 지점으로 크기를 조정합니다. 따라서 이미지가 세로인지 가로인지에 따라 가장 큰 크기가 필요하며 300px가됩니다. 가로 세로 비율을 유지하면 다른 쪽도 비례 적으로 조정됩니다.

  3. 또한 Smart Crop도하고 싶습니다. IrfanView의 경우 자동 자르기 테두리라고합니다. 크기 조정 대화 상자의 오른쪽에이 설정이 표시됩니다.

완료하기 전에 먼저 자르기를 수행 한 다음 크기를 조정해야합니다. 그렇지 않으면 300px보다 작은 것으로 끝납니다. 왜냐하면 처음 300px로 크기 조정 한 다음 그 후에 자르기 때문입니다 ... 결과를 상상할 수 있습니다.

  1. 따라서 오른쪽 하단에서 사용자 정의 처리 순서를 선택하고 순서 변경을 클릭하십시오. 자동 자르기 테두리를 맨 위로 이동합니다. 확인을 클릭하고 다시 확인을 클릭하면 변환 할 준비가됩니다. 클릭 시작 배치.

이것은 내 정확한 질문을 정확하게 해결하지는 못했지만 300px로 가장 큰면을 얻을 수 있고 크기 조정 전에 스마트 자르기가 가능한 한 중요하지 않습니다. HTML에서 CSS로 수행 할 수있는 나머지는 실제로 더 나은 솔루션 일 수 있습니다.


IMHO 아마도 이미지 매직을 사용하여 배치 솔루션을 찾는 것이 좋습니다. 단계는 1 자동 자르기이어야합니다 .2 큰 쪽의 경우 300으로 변형하지 않고 더 큰 쪽의 3 배율을 찾으십시오. 20px 스케일의 테두리를 280으로 바꾸면 Imagemagick가 가장 친한 친구가 될 것입니다. 리눅스는 스크립트를위한 좋은 환경이어야한다. 행운을 빈다.
Hastur

1

원본 이미지에 실제 검은 색 또는 흰색 테두리가없고 그러한 이미지를 만들지 않으려면 Imagemagick을 사용할 수 있습니다 convert.

convert in.jpg -geometry 300x300^ -gravity center -crop 300x300+0+0 out.jpg

캐럿 ( ^)은 이미지가 너비와 높이를 모두 채우도록합니다.

그러나 -geometry매개 변수를 사용하면 정사각형 소스 자료가 없다고 가정하면 측면 중 하나가 너무 큰 이미지로 남겨집니다. 따라서 최종 이미지 해상도를 얻으려면 가운데를 잘라야합니다. +0+0컷오프 파트는 필요하지 않기 때문에 분리 된 파일로 분리하지 않습니다.

소스 이미지에 실제로 테두리가있는 경우 -trim바로 다음 을 사용해보십시오 in.jpg.


0

투명 픽셀을 자르고 싶다는 점에서 요구 사항이 약간 달랐지만 테두리를 제거하는 것과 기능적으로 동일 할 수 있습니까? 아마도.

이 답변들 중 어느 것도 나를 위해 일하지 않았습니다. 현상금을 배치 한 후 검색을 계속 extent하고 누락 된 부분을 발견했습니다 .

magick convert *.png -trim -background none -resize 300x300 -gravity center -extent 300x300 out/processed.png

내가 이해하는 한, 각 매개 변수의 기능은 다음과 같습니다.

  • -trim: 모든 투명 픽셀 다듬기 (왼쪽, 오른쪽, 위쪽, 아래쪽)
  • -background none: 크기 조정을 위해 투명성을 유지합니다 (순서는 중요합니다!)
  • -resize 300x300: 최대 너비와 높이를 300으로 만듭니다 . 정사각형으로 만들지 않습니다 .
  • -gravity center: 이미지를 중앙에 배치합니다 (필요하지 않을 수도 있고 크기 조정 및 범위와 함께 작동 할 수도 있고 많이 테스트하지 않았습니다).
  • -extent 300x300: 캔버스의 크기를 조정하여 다시 정사각형으로 만듭니다.

기본적으로 3 단계로 변환됩니다.

  1. 투명한 가장자리 제거
  2. 너비 / 높이가 300 픽셀을 넘지 않도록 크기를 조정하십시오.
  3. 너비와 높이를 모두 300 픽셀로 만듭니다.
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.