如何用ImageMagick在可变尺寸图片添加左下至右上的醒目倾斜文字?
在ImageMagick中实现沿图片对角线从左下到右上的自适应醒目文字
要实现适配任意尺寸图片、从左下角延伸至右上角的醒目文字,可以通过动态计算图片对角线参数来生成适配的命令,无需固定数值:
核心命令(ImageMagick 6)
convert src-image.png \ -set option:diag "%[fx:sqrt(w*w+h*h)]" \ -set option:angle "%[fx:atan(h/w)*180/pi]" \ -pointsize "%[fx:diag/10]" \ -fill red -stroke black -strokewidth 2 \ -gravity southwest \ -annotate "%[angle]" 'REGISTERED' \ temp2.png
命令解析
-set option:diag "%[fx:sqrt(w*w+h*h)]":计算图片对角线长度,作为后续设置字体大小的基准-set option:angle "%[fx:atan(h/w)*180/pi]":自动计算图片对角线与水平方向的夹角,确保文字严格沿对角线排列-pointsize "%[fx:diag/10]":将字体大小设为对角线长度的1/10(可根据需求调整比例,比如diag/8更大,diag/12更小),保证在任意尺寸图片上都足够醒目且适配-fill red -stroke black -strokewidth 2:设置文字颜色为红色,添加黑色描边增强醒目度(可根据喜好修改颜色和描边宽度)-gravity southwest:将文字的锚点定位在图片左下角,确保文字从该点开始沿对角线延伸-annotate "%[angle]" 'REGISTERED':以计算出的对角线角度绘制指定文字
适配ImageMagick 7
如果使用ImageMagick 7,只需将convert替换为magick即可:
magick src-image.png \ -set option:diag "%[fx:sqrt(w*w+h*h)]" \ -set option:angle "%[fx:atan(h/w)*180/pi]" \ -pointsize "%[fx:diag/10]" \ -fill red -stroke black -strokewidth 2 \ -gravity southwest \ -annotate "%[angle]" 'REGISTERED' \ temp2.png
这样无论图片是横版、竖版还是任意尺寸,文字都会自动适配对角线方向和大小,满足你的需求。
内容的提问来源于stack exchange,提问作者silentsudo
相关产品推荐
相关产品推荐

