2010-11-08 3 views
5

У меня есть 16х16 прозрачного PNG и я сделалКак повернуть прозрачный png на 45 градусов с помощью imagemagick и сохранить новое изображение прозрачным?

convert -rotate -45 a.png b.png 

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

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

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

ответ

7

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

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

+1

Это должно быть 'convert -background 'rgba (0,0,0,0)' -rotate 45 a.png b.png' – Crazenezz

+0

@Crazenezz: Спасибо, я отредактировал ответ. –

0

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

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

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

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

Таким образом, это на самом деле немного помогло, спасибо :)

5

Вы также можете использовать следующие варианты:

-background none 
+0

FYI: В зависимости от того, как установлен ImageMagick, «-background none» может привести к ошибке, например: «convert: невозможно получить доступ к файлу configure. Colors.xml» @ warning/configure.c/GetConfigureOptions/589.'. Это происходит, когда ImageMagick не может найти файл конфигурации из-за того, где все установлено. Если вы столкнетесь с этим, вы можете вместо этого использовать «-background» rgba (0,0,0,0) ». –

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

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

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);      
} 
Смежные вопросы