10

我有一个 16x16 的透明 png,我做到了

convert -rotate -45 a.png b.png

这旋转了它并创建了一个大小为 22x22 的新图像 b.png,当我在背景上使用它时,显示原始图像 (16x16) 与底层背景一起旋转,但出现的新填充显示为白色背景。

新的填充物怎么可能也是透明的?

如果这是不可能的,那么我怎样才能让新图像的所有背景都是一种颜色?

4

5 回答 5

13

使用 -background 选项指定透明颜色,并将 alpha 设置为零:

convert -background 'rgba(0,0,0,0)' -rotate 45 a.png b.png

于 2011-04-03T07:39:03.727 回答
7

您还可以使用以下选项:

  -background none
于 2012-07-10T01:59:04.900 回答
1

我也遇到了同样的问题,但是我使用的是这样的命令:

convert a.png -rotate 45 -background transparent b.png

它必须是:

convert -rotate 45 -background transparent a.png b.png

所以,这实际上有点帮助,谢谢:)

于 2011-07-01T03:38:53.853 回答
0
convert -rotate 66 -background none c:\input.png c:\output.png

很适合我

于 2012-08-29T09:42:10.907 回答
0

我用 C# 来旋转它

using (MagickImage mimg = new MagickImage(path))
{
  mimg.BackgroundColor = MagickColor.Transparent;
  mimg.Alpha(AlphaOption.Background);
  mimg.AlphaColor = new MagickColor(System.Drawing.Color.White);
  mimg.FillColor = new MagickColor(255, 255, 255, 0);
  mimg.Rotate(degree);                    
}
于 2015-01-21T08:29:51.487 回答