2013-07-04 63 views
1

請幫我寫ImageMagick命令。我需要生成一個邊框,而只有這個邊框的頂部。下面是algoritm:imagemagick從分片生成圖像

  1. 採取片高度,生成畫布寬度=高度* 3和高度=高度* 3
  2. 採取頂部件爲頂部中心處。
  3. 將棋子旋轉90度三次,並將其定位在右中,右下和中心左側的位置。
  4. 從每個切片創建一個角。我認爲它必須延長每個切片,然後計算一個三角形掩模來切割不必要的邊緣,但是恐怕它會覆蓋對方。所以,我知道該怎麼做。有什麼想法?
+0

這是您的算法還是測驗問題?因爲你聽不清最後一步。 – Orbling

+0

有了角落,你的意思是邊框圖像應該沿着對角線的兩個邊緣分開,看起來像圖像的兩個三角形部分? – Orbling

+0

另外:http://www.imagemagick.org/Usage/crop/#border – Orbling

回答

1

我覺得你的問題很難理解,但我收集你基本上想從它的一面圖片 - 即框架成型的圖片製作一個完整的相框。

我知道這是有點晚了,但幻想一點點挑戰,所以這裏是一個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" 

所以,如果我開始與這個造型,

enter image description here

就會產生這樣的:

enter image description here

如果我開始與這個

enter image description here

就會產生這樣的:

enter image description here

請注意,此腳本可能不是一個專業的圖片成幀器做出相同的審美決定:-)

但是再一次,它永遠不會削減糟糕的mi tre :-)

+0

你是非常好的 – Izopi4a