Imagemagick은 다양한 크기의 이미지에 텍스트를 배치합니다.

Imagemagick은 다양한 크기의 이미지에 텍스트를 배치합니다.

다양한 크기의 이미지 가장자리에 텍스트를 오버레이할 수 있기를 원합니다. 다양한 크기의 이미지에는 이미지 너비의 30%를 차지하는 검은색 막대가 표시됩니다.

다음 bash 스크립트가 있습니다.

#!/bin/bash

command -v Convert>/dev/null 2>&1 || { echo >&2 "변환해야 하는데 아직 설치되지 않았습니다. 중단 중!";exit 1;}
command -v recognition>/dev/null 2>&1 || { echo >&2 "식별해야 하는데 아직 설치되지 않았습니다. 중단 중!";exit 1;}
Command -v bc >/dev/null 2>&1 || { echo >&2 "bc가 필요하지만 아직 설치되지 않았습니다. 중단 중!";exit 1;}

basedir="$(디렉터리 이름"$(readlink -f"${1}")")"
CD "$basedir"

echo "제목을 입력하고 Enter를 누르세요"
제목 읽기

if [-z "$title"];
    printf "제목을 선택하지 않았습니다. 중단합니다!\n"
    1번출구
필리핀 제도
printf "제목은 $caption\n입니다."
만약에[ ! -d "$basedir"/bakups];
    mkdir -p "$basedir"/bakups
필리핀 제도
while [ $# -gt 0 ];
    파일="$1"
    if [ -s "$file" ];
        cp -f "$file" 백업
        내보내기 이미지 크기 = $(식별된 형식 "%w, %h" "$file")
        이미지 너비 내보내기=$(echo "$imagesize" | cut -f1 -d",")
        이미지 높이 내보내기=$(echo "$(echo "$imagesize" | cut -f2 -d",")*0.05" | bc)
        변환 -배경 "#0008" -font /usr/share/fonts/truetype/fonts-georgewilliams/CaslonRoman.ttf -pointsize 80 -흰색 채우기 -중력 동쪽\
        -size $(echo $imagewidth)x$(echo $imageheight) title:"$caption" \
        "$file" +swap -gravity east -composite "$file" && \
        printf "\n$파일 워터마크가 성공적으로 추가되었습니다\n"
    필리핀 제도
    옮기다
완벽한

그것은 나에게 다음과 같은 결과를 제공합니다:

여기에 이미지 설명을 입력하세요.

텍스트가 검은색 테두리를 넘어 확장됩니다.

텍스트를 여백 내에 유지하고 텍스트 뒤의 음영 처리된 가로 막대를 제거하고 싶습니다.

텍스트가 여백 내에 유지되도록 bash 스크립트를 조정하고 포인트 크기를 변경할 수 있지만 다른 크기의 이미지에 대해 bash 스크립트를 조정할 필요 없이 자동으로 이 작업을 수행하고 싶습니다.

텍스트/여백 위치를 아래 예와 같이 표시하고 싶습니다.

여기에 이미지 설명을 입력하세요.

답변1

저는 imagemagick 전문가는 아니지만 먼저 검정색 섹션을 만들고 caption:이를 사용하여 텍스트 줄 바꿈을 수행하는 것이 더 쉽다는 것을 알았습니다. 그런 다음 검은색 부분 없이 자동차 사진을 추가합니다. 이것이 귀하가 필요한 솔루션을 향해 나아가는 데 충분하기를 바랍니다.

먼저, 이미지를 개별적으로 1650x1232의 자동차에 맞춰 수동으로 자르고 3WL51.jpg필요한 추가 검은색 부분에 500x1232를 사용했습니다.

caption="1925 Ford Model A Touring Car

*

Front Engine Rear Wheel Drive"
font=/usr/share/fonts/liberation/LiberationSans-Regular.ttf
file=3WL51.jpg

convert -size 500x1232 -font "$font" \
 -pointsize 80 -background "#0008" -fill white \
 -gravity center  caption:"$caption" \
 "$file" +swap +append out.jpg

제목이 붙은 자동차

관련 정보