convert from.png -pointsize 50 -fill white -gravity center -annotate +0+0 "windows10" to.png
我量过,垂直方向上并没有居中。
要让文字在图片上垂直居中,你需要更精确地控制 -annotate
命令中的偏移量。由于 -gravity center
只会将文字的水平中心点与图片的中心点对齐,但不会自动调整垂直位置,你需要手动计算或调整垂直方向的偏移量。
一个简单的方法是先获取图片的高度,然后根据字体大小和期望的垂直位置(如中心)来计算偏移量。不过,在命令行中直接这样做可能有些复杂,因为 ImageMagick 不直接提供查询图片尺寸的命令输出。但你可以通过一些间接的方法来实现,或者预先知道图片的尺寸。
假设你已经知道图片的高度(或可以通过其他方式获取),你可以使用 -draw
参数和 text
命令来更精确地放置文字,或者使用 -annotate
并计算垂直偏移。
这里是一个使用 -annotate
并手动设置垂直偏移的示例,假设图片高度为 H
,字体大小为 50
,你可以这样计算垂直偏移(注意,这里只是一个粗略的估计,实际可能需要根据字体和图片的具体情况进行调整):
convert from.png \
-pointsize 50 \
-fill white \
-annotate "$(echo "$(identify -format '%h' from.png) / 2 - 25" | bc)x$(echo "$(identify -format '%w' from.png) / 2" | bc)" "windows10" \
to.png
注意:上面的命令试图通过 identify
命令获取图片的高度(%h
)和宽度(%w
),然后计算文字的 x 和 y 坐标。但是,这个命令实际上并不会工作,因为 -annotate
需要的是相对于图片左上角的偏移量,而不是绝对坐标。因此,你需要手动计算这个偏移量,或者使用 -draw
命令结合 text
来更灵活地定位。
一个使用 -draw
命令的示例:
convert from.png \
-fill white \
-font Arial \
-pointsize 50 \
-draw "text $(echo "$(identify -format '%[fx:w/2]' from.png)" | bc),$(echo "$(identify -format '%[fx:h/2-25]' from.png)" | bc) 'windows10'" \
to.png
在这个命令中,%[fx:w/2]
和 %[fx:h/2-25]
分别用于计算文字的水平中心位置和垂直中心位置(向下偏移 25 像素以考虑字体大小的一半,这个值可能需要根据你的具体字体和期望的视觉效果进行调整)。注意,这里假设你已经安装了 ImageMagick,并且 identify
命令可用(它通常与 ImageMagick 一起安装)。
注意:这些命令中的 bc
工具用于处理数学运算,确保在 Shell 脚本中正确执行。如果你的环境中没有 bc
,你可能需要找到其他方法来计算这些值。
本文向大家介绍如何垂直居中` `?相关面试题,主要包含被问及如何垂直居中` `?时的应答技巧和注意事项,需要的朋友参考一下 使用协助元素(这里是i),作为img的相邻元素,同为inline-block的两元素相邻时增加vertical-align: middle
问题内容: 垂直居中html图像旁边的文本的最佳和最简单的方法是什么?需要与浏览器版本/类型无关。纯HTML / CSS解决方案。 问题答案: 我总是退回到这个解决方案上。不太hack-ish并完成工作。 编辑:我应该指出,您可以使用以下代码来实现想要的效果(原谅内联样式;它们应该在单独的工作表中)。图像(基线)上的默认对齐方式似乎会导致文本对齐基线。至少在FireFox3中,将其设置为中值可以使
本文向大家介绍CSS图片响应式 垂直水平居中,包括了CSS图片响应式 垂直水平居中的使用技巧和注意事项,需要的朋友参考一下 我看最近微博流行CSS居中技术,我看了几编资料写的都不多好,于是抽时间把相关资料整合了,具体内容如下。 点击此处下载源码 效果展示: 要求: 1.尽可能兼容更多浏览器,这里兼容到ie7,ie6不支持max-*就不考虑了。 2.浏览器尺寸变化时,图片总是等比例拉伸或缩放。 3.
问题内容: 我正在尝试制作一个小的用户名和密码输入框。 我想问一下,如何垂直对齐div? 我所拥有的是: 如何使ID为Username和Form的div垂直对齐中心?我试着把: 在CSS中用于ID为Login的div,但似乎不起作用。任何帮助,将不胜感激。 问题答案: 现代浏览器中最好的方法是使用flexbox: 某些浏览器将需要供应商前缀。对于不支持Flexbox的较旧的浏览器(例如IE9及更低
本文向大家介绍如何实现垂直居中?相关面试题,主要包含被问及如何实现垂直居中?时的应答技巧和注意事项,需要的朋友参考一下 参考回答: 父元素固定宽高,利用定位及设置子元素margin值为自身的一半。 父元素固定宽高,子元素设置position: absolute,margin:auto平均分配margin css3属性transform。子元素设置position: absolute; left:
假设我有一个bootstrap按钮,它有一个字体很棒的图标和一些文本: 如何使文本显示为垂直居中?文本现在与图标的底部边缘对齐:http://jsfidle.net/v7dlm/1/ 编辑:我有一个可能的解决方案:http://jsfidle.net/cldeg/1/但感觉有点怪--引入额外的p标记,使用拉左和display:table。也许有人可以建议一个更简单的方法。