在Imagemagick中随机旋转图像

在Imagemagick中随机旋转图像,imagemagick,imagemagick-convert,Imagemagick,Imagemagick Convert,我是Imagemagick的新手。我需要旋转这个图案 对于一些以度为单位的随机角度。我能做到最好的是: convert -rotate -15 -background none originfile.png savefile.png 这就产生了: 我有一个问题: 我需要一个在-30到30范围内的随机旋转角度。但是现在,我只能手动选择旋转角度。您需要设置一个随机函数,并将其作为变量提供给您的命令。如果您使用的是V7,您可能可以在命令中执行此操作。您需要设置一个随机函数,并将其作为变量提供给您的

我是Imagemagick的新手。我需要旋转这个图案

对于一些以度为单位的随机角度。我能做到最好的是:

convert -rotate -15 -background none originfile.png savefile.png
这就产生了:

我有一个问题:


我需要一个在-30到30范围内的随机旋转角度。但是现在,我只能手动选择旋转角度。

您需要设置一个随机函数,并将其作为变量提供给您的命令。如果您使用的是V7,您可能可以在命令中执行此操作。

您需要设置一个随机函数,并将其作为变量提供给您的命令。如果您使用的是V7,则可以在命令中执行此操作。

为此,您需要ImageMagick V7或更高版本:

magick pattern.png -background none -rotate "%[fx:-30+60*rand()]" result.png
在[0,1]上旋转-30+60 x随机数,即-30到+30

如果没有版本7,可以在bash中生成随机数:

或者,如果要先查看/检查值,可以在两行上执行:

((r=(RANDOM%60)-30))
convert pattern.png -background none -rotate "$r" result.png
如果您正好在Windows上,您可以生成一个介于-30和+30之间的随机数,我认为:

set /a number=-30 + %random% %% 60
convert pattern.png -background none -rotate %number% result.png
为此,您需要ImageMagick v7或更高版本:

magick pattern.png -background none -rotate "%[fx:-30+60*rand()]" result.png
在[0,1]上旋转-30+60 x随机数,即-30到+30

如果没有版本7,可以在bash中生成随机数:

或者,如果要先查看/检查值,可以在两行上执行:

((r=(RANDOM%60)-30))
convert pattern.png -background none -rotate "$r" result.png
如果您正好在Windows上,您可以生成一个介于-30和+30之间的随机数,我认为:

set /a number=-30 + %random% %% 60
convert pattern.png -background none -rotate %number% result.png

使用ImageMagick v6,您可以通过在这样的命令中使用+扭曲来获得-30到30度之间的随机旋转

convert originfile.png -background none \
   -virtual-pixel none +distort SRT "%[fx:-60*random()+30]" savefile.png

对于IM v7,您应该使用magick而不是convert。

对于ImageMagick v6,您可以通过在这样的命令中使用+扭曲来获得-30到30度之间的随机旋转

convert originfile.png -background none \
   -virtual-pixel none +distort SRT "%[fx:-60*random()+30]" savefile.png

对于IM v7,您应该使用magick而不是convert。

另一个选项是将ImageMagick 6的Mark Setchell和GeeMack命令组合为:

angle=$(convert xc: -format "%[fx:-60*random()+30]" info:)
convert pattern.png -background none -rotate $angle result.png

另一个选项是将ImageMagick 6的Mark Setchell和GeeMack命令组合为:

angle=$(convert xc: -format "%[fx:-60*random()+30]" info:)
convert pattern.png -background none -rotate $angle result.png