2011-10-12 33 views

Trả lời

9

convert image.png -matte -fill none -fuzz 1% -opaque white result.png

Thay thế bất kỳ màu trắng nào có độ trong suốt. Tùy chọn mờ bao gồm mọi thứ gần như trắng.

+2

Làm cách nào để chuyển đổi thành rmagick? – hadees

+0

@hadees này trông giống như một khởi đầu tốt: [Hiểu chuyển đổi của ImageMagick và dịch sang Ruby RMagick] (http://stackoverflow.com/questions/4132787/understanding-imagemagicks-convert-and-translating-to-ruby-rmagick) –

1

Với v6.8.4-Q16 sử dụng lệnh dưới đây:

convert nike.png -matte -fill none -fuzz 1% -opaque white nikeOutput.png 

Kết quả trong:

enter image description here

Đây là lệnh tôi sử dụng:

convert nike.jpg -transparent white NikeProd.png 

enter image description here

enter image description here

2

Tôi biết tôi khá muộn để đảng, nhưng rất nhiều đã thay đổi kể từ khi câu hỏi này lần đầu tiên được đăng tải, vì vậy đây là cách bạn có thể làm điều đó ngày nay sử dụng ít nhất phiên bản 2.15.4 của rmagick

Giả bạn có hình ảnh ở đâu đó truy cập:

image = Magick::Image.new(path_to_file) 
image.background_color = 'none' 

Nếu bạn cũng muốn cắt hình ảnh do đó, nó chỉ lớn như nó ranh giới, chỉ cần sử dụng .trim!

image.trim! 

EDIT:

Hóa ra giải pháp trên không thực sự làm việc cho tất cả các trường hợp sử dụng. Một giải pháp tổng quát hơn là:

# the image needs to be in 'PNG' format 
image.format = 'PNG' 

# set a fuzz on the image depending on how accurate you want to be 
image.fuzz = '10%' 

# get the image background color 
background_color = image.background_color 

# convert pixels based on their color to being transparent 
# the fuzz set above controls how accurate the conversion will be 
image.paint_transparent(background_color) 
Các vấn đề liên quan