我覺得你的問題很難理解,但我收集你基本上想從它的一面圖片 - 即框架成型的圖片製作一個完整的相框。
我知道這是有點晚了,但幻想一點點挑戰,所以這裏是一個bash腳本,它的頂部件成型作爲參數的圖片,使得它從一幀...
#!/bin/bash
################################################################################
# pictureframe
# Mark Setchell
#
# Make a picture frame from a single horizontal moulding picture - with mitred
# corners and a transparent middle for a photo!
################################################################################
# Set DEBUG=1 for debugging info
DEBUG=1
# Image of the moulding is the 1st parameter, use "moulding.jpg" if none given
moulding=${1:-moulding.jpg}
[ $DEBUG -gt 0 ] && echo "DEBUG: Using file: $moulding"
# Get width and height of image
read w h < <(convert "$moulding" -format "%w %h" info:)
[ $DEBUG -gt 0 ] && echo "DEBUG: Dimensions: ${w}x${h}"
# Determine corner points of mitring mask - it looks like this
#
# ----------------------------
# \ /
# ----------------------
#
polyline=$(convert "$moulding" -format "0,0 %w,0 %[fx:w-h],%h %h,%h" info:)
[ $DEBUG -gt 0 ] && echo "DEBUG: Mitring mask: $polyline"
# Mitre corners
dbg=""
[ $DEBUG -gt 0 ] && dbg="-write mask.png" && echo "DEBUG: Mask is in file mask.png"
convert "$moulding" \(+clone -evaluate set 0 -fill white -draw "polyline $polyline" -alpha off $dbg \) -compose copyopacity -composite top.png
# Build whole frame by rotating top through the angles and compositing onto extended blank canvas
convert top.png -background none -extent x${w} \
\(top.png -rotate 90 \) -gravity east -composite \
\(top.png -rotate 180 \) -gravity south -composite \
\(top.png -rotate 270 \) -gravity west -composite -flatten result.png
[ $DEBUG -gt 0 ] && echo "DEBUG: Output file is: result.png"
所以,如果我開始與這個造型,
就會產生這樣的:
如果我開始與這個
就會產生這樣的:
請注意,此腳本可能不是一個專業的圖片成幀器做出相同的審美決定:-)
但是再一次,它永遠不會削減糟糕的mi tre :-)
這是您的算法還是測驗問題?因爲你聽不清最後一步。 – Orbling
有了角落,你的意思是邊框圖像應該沿着對角線的兩個邊緣分開,看起來像圖像的兩個三角形部分? – Orbling
另外:http://www.imagemagick.org/Usage/crop/#border – Orbling