2012-03-02 17 views
45

का उपयोग करके एसवीजी को एंटीअलाइजिंग के साथ पारदर्शी पीएनजी में कनवर्ट करें, मैं एसवीजी छवियों को पीएनजी फाइलों में पारदर्शी पृष्ठभूमि और एंटी-एलाइज्ड किनारों (अर्द्ध पारदर्शी पिक्सेल का उपयोग करके) में कनवर्ट करना चाहता हूं। दुर्भाग्य से मैं एंटी-एलियासिंग करने के लिए ImageMagick नहीं प्राप्त कर सकता, किनारों हमेशा भयानक लगते हैं। यहाँ मैं क्या करने की कोशिश की है:छवि मैगिक

convert +antialias -background transparent in.svg -resize 25x25 out.png 

कोई भी विचार या मैं इस्तेमाल कर सकते हैं एक अलग कमांड लाइन टूल?

उत्तर

48

इंकस्केप यह कर देगा:

inkscape \ 
    --export-png=out.png --export-dpi=200 \ 
    --export-background-opacity=0 --without-gui in.svg 
+1

पहला समाधान मैंने पाया है कि कुछ एसवीजी के रंग पैलेट को रखता है, उदा। अपाचे निफ्फी का लोगो (https://nifi.apache.org/assets/images/apache-nifi-logo.svg)। – timss

15

वास्तव में, पढ़ने ImageMagick प्रलेखन:

-antialias

सक्षम विरोधी aliasing पिक्सल के प्रतिपादन के/अक्षम जब फ़ॉन्ट और लाइनों ड्राइंग । डिफॉल्ट रूप से, ऑब्जेक्ट्स (उदा। टेक्स्ट, लाइन, बहुभुज, इत्यादि) खींचे जाने पर एंटीअलाइज्ड होते हैं। एंटीअलाइजिंग एज पिक्सेल के अतिरिक्त को अक्षम करने के लिए + एंटीअलाइज़ का उपयोग करें। इसके बाद
छवियों में सीधे रंगों को सीधे खींचे जाने वाले रंगों की संख्या को कम कर देगा। यही है, मिश्रित> ऐसी वस्तुओं को चित्रित करते समय रंग जोड़े जाते हैं।

+ antialias होगा वास्तव में अक्षम एंटीलायज़िंग़।

59

एक साइड नोट के रूप में, मैंने पाया कि पारदर्शिता प्राप्त करना थोड़ा मुश्किल था। पारदर्शी का उपयोग करने के बजाय, मुझे कोई भी का उपयोग करना पड़ा।

convert -background none in.svg out.png 
+0

कम से कम इस समय (6.8.6), यह _transparent_ के साथ भी काम करता है। –

+3

दोनों 'कोई नहीं' और 'पारदर्शी' मेरे लिए अपारदर्शी सफेद पृष्ठभूमि बनाते हैं। पारदर्शी नहीं है। मैं मैक – petrsyn

+2

पर 6.8.8-3 का उपयोग कर रहा हूं, 'बैकग्राउंड कोई भी' मेरे लिए काम नहीं करता है, मैक – commonpike

9

तरह से मैं कैसे से कार्यप्रणाली यहां पाया यह था करने के लिए सीखा है: How to convert a .eps file to a high quality 1024x1024 .jpg?

यह inkscape साथ @ halfer के समाधान --to पहले डीपीआई को जैक के रूप में एक ही विचार है - लेकिन आप -density विकल्प का उपयोग कर imagemagick में एक ही चीज़ को पूरा कर सकते हैं।

convert -density 200 in.svg -resize 25x25 -transparent white out.png