我有一个 16x16 的透明 png,我做到了
convert -rotate -45 a.png b.png
这旋转了它并创建了一个大小为 22x22 的新图像 b.png,当我在背景上使用它时,显示原始图像 (16x16) 与底层背景一起旋转,但出现的新填充显示为白色背景。
新的填充物怎么可能也是透明的?
如果这是不可能的,那么我怎样才能让新图像的所有背景都是一种颜色?
我有一个 16x16 的透明 png,我做到了
convert -rotate -45 a.png b.png
这旋转了它并创建了一个大小为 22x22 的新图像 b.png,当我在背景上使用它时,显示原始图像 (16x16) 与底层背景一起旋转,但出现的新填充显示为白色背景。
新的填充物怎么可能也是透明的?
如果这是不可能的,那么我怎样才能让新图像的所有背景都是一种颜色?
使用 -background 选项指定透明颜色,并将 alpha 设置为零:
convert -background 'rgba(0,0,0,0)' -rotate 45 a.png b.png
您还可以使用以下选项:
-background none
我也遇到了同样的问题,但是我使用的是这样的命令:
convert a.png -rotate 45 -background transparent b.png
它必须是:
convert -rotate 45 -background transparent a.png b.png
所以,这实际上有点帮助,谢谢:)
convert -rotate 66 -background none c:\input.png c:\output.png
很适合我
我用 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);
}