Как я могу повернуть прозрачный png на 45 градусов с помощью imagemagick и сохранить новое изображение прозрачным? - PullRequest
6 голосов
/ 08 ноября 2010

У меня есть прозрачный png 16x16, и я сделал

convert -rotate -45 a.png b.png

Это повернуло его и создало новое изображение b.png размером 22x22, которое при использовании на фоне показывает исходное изображение (16x16) повернут с базовым фоном, но появившаяся новая заливка отображается с белым фоном.

Как можно сделать новую заливку слишком прозрачной?

Если это не таквозможно, чем я могу сделать так, чтобы весь фон нового изображения был одного цвета?

Ответы [ 5 ]

8 голосов
/ 03 апреля 2011

Используйте параметр -background, чтобы указать прозрачный цвет с альфа-каналом, установленным на ноль:

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

6 голосов
/ 10 июля 2012

Вы также можете использовать эти опции:

  -background none
0 голосов
/ 21 января 2015

Я использовал 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);                    
}
0 голосов
/ 29 августа 2012
convert -rotate 66 -background none c:\input.png c:\output.png

хорошо работает для меня

0 голосов
/ 01 июля 2011

У меня тоже была такая же проблема, однако я использовал команду примерно так:

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

Это должно было быть:

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

Итак, это немного помогло, спасибо:)

...