使用 ImageMagick 組合不同大小的圖形

使用 ImageMagick 組合不同大小的圖形

我正在處理大量圖像,其中黑色背景上有銀色硬幣。首先,我透過計算尺寸來修剪檔案:trimbox=$(convert $f -fuzz 35% -format "%@" info:)

我將 50 添加到前 2 個參數,將 25 添加到最後 2 個參數(以使原始圖片的更多部分超出修剪檢測到的範圍)。我已經通過刪除這些偏移進行了測試,沒有任何區別。

convert "$f" -crop "$trimbox" +repage "$baseFilename-trimmed.jpg"

修剪後我正在使用:

    command="$baseoFilename-trimmed.jpg $baserFilename-trimmed.jpg "
    command2="+repage _MG_$first"
    convert $command -append $command2-vmerged.jpg
    convert $command +append $command2-hmerged.jpg

合併文件。我嘗試過使用 -background black 或 -fill black 的變體,但無濟於事。

出現細白色矩形是因為兩個影像的大小略有不同。

我希望它們的大小調整相同,這樣就不需要修正,但也可以接受黑條。

文件樣本:

在白色背景上查看這些當然會掩蓋我正在談論的內容。

答案1

這個腳本應該要做你想做的事。修剪時使用影像的最大寬度或最大高度。

# !/bin/bash

set -eu

gettrimbox() {
    # Some lines were based on the code of Fred Weinhaus available on http://www.fmwconcepts.com/imagemagick/autotrim/
    trimbox=$(convert "$1" -fuzz 35% -format "%@" info: | tr -cs "0-9\n" " ")
    r_w=$(echo $trimbox | cut -d\  -f1)
    r_h=$(echo $trimbox | cut -d\  -f2)
    r_xoff=$(echo $trimbox | cut -d\  -f3)
    r_yoff=$(echo $trimbox | cut -d\  -f4)
    r_xcenter=$(((r_w/2)+r_xoff))
    r_ycenter=$(((r_h/2)+r_yoff))
    r_w=$((r_w+50))
    r_h=$((r_h+50))
}

f1=$1
f2=$2
number1=$(echo "$f1" | tr -dc "0-9")

gettrimbox "$f1"
w1=$r_w; h1=$r_h
xcenter1=$r_xcenter; ycenter1=$r_ycenter

gettrimbox "$f2"
w2=$r_w; h2=$r_h
xcenter2=$r_xcenter; ycenter2=$r_ycenter

if [ $w1 -gt $w2 ]; then max_w=$w1; else max_w=$w2; fi
if [ $h1 -gt $h2 ]; then max_h=$h1; else max_h=$h2; fi

convert "$f1"[$max_w"x"$h1+$((xcenter1-(max_w/2)))+$((ycenter1-(h1/2)))] \
        "$f2"[$max_w"x"$h2+$((xcenter2-(max_w/2)))+$((ycenter2-(h2/2)))] \
        -append +repage "_MG_$number1-vmerged.jpg"

convert "$f1"[$w1"x"$max_h+$((xcenter1-(w1/2)))+$((ycenter1-(max_h/2)))] \
        "$f2"[$w2"x"$max_h+$((xcenter2-(w2/2)))+$((ycenter2-(max_h/2)))] \
        +append +repage "_MG_$number1-hmerged.jpg"

答案2

我使用 Irfanview64 而不是 Imagemagick

  • 它具有靈活的成像工具
  • 使用“T”啟動縮圖以啟動縮圖應用程式
  • 您可以瀏覽資料夾,甚至可以從>編輯中添加所有子資料夾<加載
  • 縮圖的選項很豐富
  • 您可以使用 Ctrl + 單擊鍵選擇許多圖像
  • 然後>檔案>建立聯絡表)並調整陣列大小x * y和等等之間的空間

在此輸入影像描述 在此輸入影像描述

相關內容