2010-11-08 45 views
5

Tôi có một png 16x16 minh bạch và tôi đã làmLàm thế nào tôi có thể xoay một png trong suốt 45 độ bằng cách sử dụng imagemagick và giữ cho hình ảnh mới trong suốt?

convert -rotate -45 a.png b.png 

này xoay nó và tạo ra một hình ảnh mới b.png đó là kích thước 22x22 và trong đó khi tôi sử dụng chống lại một nền tảng cho thấy hình ảnh ban đầu (16x16) được xoay với nền cơ bản nhưng điền mới xuất hiện với nền trắng.

Làm cách nào để điền thông tin mới?

Nếu điều đó là không thể, thì làm thế nào tôi có thể có tất cả nền của hình ảnh mới là một màu?

Trả lời

7

Sử dụng tùy chọn -background để xác định một màu trong suốt với thiết lập alpha để zero:

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

+1

Nó phải là 'convert -background' rgba (0,0,0,0) '-rotate 45 a.png b.png' – Crazenezz

+0

@Crazenezz: Cảm ơn, tôi đã chỉnh sửa câu trả lời. –

0

Tôi cũng đã có cùng một vấn đề, tuy nhiên tôi đã sử dụng các lệnh như vậy:

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

Nó cần thiết để được:

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

Vì vậy, điều này thực sự đã giúp một chút, nhờ :)

5

Bạn cũng có thể sử dụng các tùy chọn này:

-background none 
+0

FYI: Tùy thuộc vào cách ImageMagick được cài đặt cấu hình, '-background none 'có thể dẫn đến lỗi như' chuyển đổi: không thể truy cập tệp cấu hình 'colors.xml' @ warning/configure.c/GetConfigureOptions/589.'. Điều này xảy ra khi ImageMagick không thể tìm thấy tệp cấu hình vì nơi mọi thứ được cài đặt. Nếu bạn chạy vào đó, bạn có thể sử dụng '-background 'rgba (0,0,0,0)'' thay thế. –

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

hoạt động tốt đối với tôi

0

tôi đã sử dụng C# để xoay nó

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);      
} 
Các vấn đề liên quan