का उपयोग कर फ़ॉन्ट परिवार के साथ एक फ़ॉन्ट निर्दिष्ट करना क्या ImageMagick में फ़ॉन्ट परिवार का उपयोग करके फ़ॉन्ट प्रस्तुत करना संभव है?ImageMagick
मैंने उन सभी चीजों का प्रयास किया है जिनके बारे में मैं सोच सकता हूं और कुछ भी काम नहीं करता है। मैंने बहुत सी खोज की है और मुझे ऐसा कुछ भी नहीं मिल रहा है जो इस विशिष्ट मुद्दे को संबोधित करता है।
मैं अंततः PHP का उपयोग कर रहा हूं, लेकिन मैंने बिना किसी सफलता के कमांड लाइन पर ImageMagick का उपयोग करने का भी प्रयास किया है। मैं linux पर ImageMagick 6.7.6 का उपयोग कर रहा हूँ। यहां तक कि मैंने अभी तक किया है।
- मैं फोंट कि ImageMagick
identify -list font
आदेश का उपयोग - मैं मैन्युअल
- मैं एक बनाया है एक्सएमएल फ़ाइलें कि अपने सिस्टम पर स्थापित आया के आधार पर एक type.xml फ़ाइल बनाई है reckognizes का परीक्षण किया है imagick_type_gen
- मैं एकाधिक फ़ॉन्ट प्रकार के साथ परीक्षण किया है:: type.xml फ़ाइल इस स्क्रिप्ट का उपयोग ttf, otf, PFB,
convert -pointsize 32 -font "Honey-Script-Light" label:'Testing' testing.png
: यदि मैं पूर्ण फ़ॉन्ट का नाम सब कुछ के रूप में की उम्मीद काम करता है निर्दिष्ट
Font: DejaVu-Sans-Book
family: DejaVu Sans
style: Normal
stretch: Normal
weight: 400
glyphs: /usr/share/fonts/dejavu/DejaVuSans.ttf
Font: Baskerville-Regular
family: Baskerville
style: Normal
stretch: Normal
weight: 400
glyphs: /usr/share/fonts/custom/Baskerville.ttc
Font: Palatino-Roman
family: Palatino
style: Normal
stretch: Normal
weight: 400
glyphs: /usr/share/fonts/urw-fonts/p052003l.pfb
Font: Honey-Script-Light
family: Honey Script
style: Normal
stretch: Normal
weight: 300
glyphs: /usr/share/fonts/custom/HoneyScript-Light.ttf
:
यहाँ कुछ फोंट के लिए मैं के साथ परीक्षण किया है identify -list font
से उदाहरण उत्पादन होता है
हालांकि, जब मैं फ़ॉन्ट परिवार का उपयोग करने की कोशिश करता हूं (दोनों identify -list font
और सूची द्वारा सूचीबद्ध type.xml में घ) मैं डिफ़ॉल्ट सिस्टम फ़ॉन्ट मिलती है:
convert -pointsize 32 -family "Honey Script" label:'Testing' testing.png
मैं भी फॉन्ट के मापदंडों के सभी निर्दिष्ट करने की कोशिश की है और इसे फिर से काम नहीं करता है:
convert -pointsize 32 -stretch Normal -style Normal -weight 300 -family "Honey Script" label:'Testing' testing.png
जब मैं PHP के माध्यम से एक समान प्रक्रिया करता हूं, तो जैसे ही मैं ड्रॉ ऑब्जेक्ट के फ़ॉन्ट परिवार को सेट करने का प्रयास करता हूं, वास्तव में यह एक त्रुटि देता है।
PHP Fatal error: Uncaught exception 'ImagickDrawException' with message 'Unable to set font family; parameter not found in the list of configured fonts
बस कमांड लाइन विकल्प की तरह, अगर मैं पूर्ण फ़ॉन्ट का नाम निर्दिष्ट करें, छवि ठीक प्रदान की गई है:
$draw->setFontFamily('Honey Script');
यह त्रुटि फेंक दिया जाता है।
$draw->setFont('Honey-Script-Light');
सब कुछ से मैं कैसे एक फ़ॉन्ट कॉन्फ़िगर करने के बारे पाया है ImageMagick के साथ प्रयोग की जाने वाली, फोंट वास्तव में कॉन्फ़िगर किया गया है। मैं फ़ॉन्ट परिवार के आधार पर फोंट का चयन क्यों नहीं कर सकता?
क्या यह संभवतः एक अनियंत्रित बग है? क्या मैं कुछ छोड़ रहा हूं?
मुझे एहसास है कि मैं बस पूर्ण फ़ॉन्ट नाम निर्दिष्ट कर सकता हूं और इसके साथ किया जा सकता हूं, लेकिन मेरे प्रोजेक्ट के लिए एक कारण विशिष्ट है जो फ़ॉन्ट परिवार को निर्दिष्ट करने के लिए बेहतर बनाता है।
फ़ॉन्ट परिवार को निर्दिष्ट करने का विकल्प क्यों होगा यदि यह काम नहीं करता है? यह ImageMagick फ़ॉन्ट परिवार विकल्प के बारे में क्या कहते हैं:
यह सेटिंग एक फ़ॉन्ट परिवार कि ImageMagick पाठ प्रतिपादन के लिए उपयोग करने के लिए प्रयास करना चाहिए पता चलता है। अगर परिवार पाया जा सकता है तो इसका इस्तेमाल किया जाता है; यदि नहीं, तो डिफ़ॉल्ट फ़ॉन्ट (उदा।, "एरियल") या एक परिवार जैसा होना चाहिए प्रतिस्थापित किया गया है (उदाहरण के लिए, "कूरियर" का उपयोग किया जा सकता है यदि "सिस्टम" से अनुरोध किया गया है लेकिन नहीं मिला)।
किसी भी विचार का बहुत स्वागत है। मैं इस बिंदु पर काफी अटक गया हूँ।
संपादित करें:
मुख्य कारण मैं पूरी तरह से नामित फोंट के बजाय फ़ॉन्ट परिवारों का उपयोग करना चाहते इनपुट मैं प्रसंस्करण कर रहा हूँ की वजह से है। मुझे किसी तीसरे पक्ष की फाइलें मिलती हैं जिन्हें संसाधित करने की आवश्यकता होती है। तो मुझे लगता है कि जानकारी मैं फ़ॉन्ट परिवार के हर संभव संयोजन के लिए एक मानचित्रण नहीं बना और सही फ़ॉन्ट का नाम करने के लिए जिम्मेदार बताते हैं की आवश्यकता होगी के आधार पर सटीक फ़ॉन्ट का नाम निर्दिष्ट करने के लिए किया था
font-family="Honey Script" font-style="Normal" font-stretch="Normal" font-weight="300"
: ये फ़ाइलें के रूप में फोंट निर्दिष्ट करें। यह बनाए रखना बहुत कठिन होगा क्योंकि सिस्टम में सैकड़ों फोंट जोड़े गए हैं।
ऐसा लगता है कि ऊपर सूचीबद्ध अनुसार फ़ॉन्ट के बारे में सभी उपलब्ध विवरणों के आधार पर छवि मैगिक को सटीक फ़ॉन्ट पुनर्प्राप्त करने का एक तरीका होना चाहिए।
यदि यह संभव नहीं है तो ImageMagick के पास फ़ॉन्ट परिवार निर्दिष्ट करने का विकल्प क्यों होगा?
मैंने हमेशा सोचा है कि _font family_ सिर्फ परिवार के पहले फ़ॉन्ट को निर्दिष्ट करने का एक तरीका है। तो, फ़ॉन्ट "हनी स्क्रिप्ट" के लिए, चयनित वास्तविक फ़ॉन्ट पहला हनी स्क्रिप्ट फ़ॉन्ट होगा जो सूचीबद्ध होता है जब आप 'कन्वर्ट सूची' के साथ फ़ॉन्ट सूची करते हैं। उस ने कहा, मुझे लगता है कि मैं कुछ एसवीजी फाइलों को देखता हूं जिनके साथ मैं इंकस्केप से काम कर रहा हूं, वास्तव में केवल टेक्स्ट तत्वों में निर्दिष्ट परिवार है। इंकस्केप उस परिवार से एक समझदार फ़ॉन्ट का चयन करने लगता है, तो यह कुछ शोध करने के लायक हो सकता है कि इसके प्रस्तुतकर्ता (पेंगो) कैसे करता है? – halfer
मुझे परिवार में पहला फ़ॉन्ट भी नहीं मिला है। मैंने फ़ॉन्ट्स का भी प्रयास किया है जहां परिवार में केवल एक ही फ़ॉन्ट है। मैं देख सकता हूं कि अन्य कार्यक्रम कैसे करते हैं, लेकिन यह अभी भी यह नहीं समझाता है कि ImageMagick क्यों नहीं करता है। मैं इमेजिक पीईसीएल एक्सटेंशन का उपयोग करके ImageMagick के लिए कॉन्फ़िगरेशन नहीं ढूंढ पा रहा हूं जो मुझे अपवाद फेंकने के बिना किसी भी फ़ॉन्ट परिवार को निर्दिष्ट करने देता है। – chawkinsuf
यह बहुत निश्चित लगता है कि यह काम नहीं करता है। निजी तौर पर, मैं एक रूपांतरण दिनचर्या लिखूंगा जो परिवार, शैली, वजन इत्यादि लेता है और आवश्यक फ़ॉन्ट को स्वत: निर्धारित करने का प्रयास करता है। अपवादों की एक छोटी सूची अजीब मामलों से निपट सकती है, और जहां कोई डिफ़ॉल्ट सूचीबद्ध नहीं है, सूची में पहला चुना जाना चाहिए। मुझे संदेह है कि यह उन चीजों में से एक है जिसे देखने के लिए प्रयास किया जाना चाहिए कि यह उचित होगा - लेकिन लिखने में बहुत लंबा समय नहीं लेना चाहिए। – halfer