如何使用imagemagick将透明png旋转45度并保持新图像透明?

时间:2010-11-08 03:59:18

标签: png imagemagick transparency image-rotation

我有一个16x16透明的png而且我做了

convert -rotate -45 a.png b.png

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

如何使新填充物透明化?

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

5 个答案:

答案 0 :(得分:7)

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

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

答案 1 :(得分:6)

您还可以使用以下选项:

  -background none

答案 2 :(得分:0)

我也有同样的问题,但我正在使用这样的命令:

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

需要:

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

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

答案 3 :(得分:0)

convert -rotate 66 -background none c:\input.png c:\output.png

适合我

答案 4 :(得分: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);                    
}