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

发布于 2024-10-01 06:04:53 字数 240 浏览 9 评论 0原文

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

convert -rotate -45 a.png b.png

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

怎么可能让新填充物也变得透明呢?

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

I have a 16x16 transparent png and I did

convert -rotate -45 a.png b.png

This rotated it and created a new image b.png which is of size 22x22 and which when I use against a background shows the original image (16x16) rotated with the underlying background but the new filling that came about shows up with a white background.

How is it possible to have the new filling too be transparent?

If that is not possible, than how can I have all the background of the new image be one color?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

失而复得 2024-10-08 06:04:53

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

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

Use the -background option to specify a transparent color with alpha set to zero:

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

樱花坊 2024-10-08 06:04:53

您还可以使用这些选项:

  -background none

You can also use these options:

  -background none
我很OK 2024-10-08 06:04:53

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

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

它需要是:

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

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

I was also having the same issue, however I was using the command like so:

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

It needed to be:

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

So, this actually helped a little, thanks :)

空‖城人不在 2024-10-08 06:04:53
convert -rotate 66 -background none c:\input.png c:\output.png

对我来说效果很好

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

works well for me

浅浅 2024-10-08 06:04:53

我用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);                    
}

I used C# to rotate it

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);                    
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文