imagemagick从切片生成图像

时间:2013-07-04 13:31:55

标签: imagemagick

请帮我写ImageMagick的命令。我需要生成一个边框,同时只有这个边框的顶部。这是algoritm:

  1. 获取作品高度,生成画布width = height * 3和height = height * 3
  2. 将顶部放在顶部中心位置。
  3. 将零件旋转90度三次,并将其定位在中间右侧,底部和中间左侧位置。
  4. 从每个切片制作一个角。我认为每个切片必须长,接下来计算一个三角形掩模来切割不必要的边缘,但是我担心它会相互覆盖。所以,我知道该怎么做。有什么想法吗?

1 个答案:

答案 0 :(得分: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

请注意,此脚本可能无法与专业图片处理器做出相同的审美决定: - )

但话又说回来,它永远不会削减一个非常合适的斜角: - )