2010-05-16 12 views
26

ग्राफिक्स का उपयोग किए बिना फ़ॉन्टमैटिक्स कैसे प्राप्त करें? मैं निर्माता में FontMetrics प्राप्त करना चाहते हैं, अब मैं इस तरह से कार्य करें:जावा - ग्राफिक्स के बिना फ़ॉन्टमैटिक्स

BufferedImage bi = new BufferedImage(5, 5, BufferedImage.TYPE_INT_RGB); 
FontMetrics fm = bi.getGraphics().getFontMetrics(font); 
int width = fm.stringWidth(pattern); 
int height = fm.getHeight(); 
+0

आप ग्राफिक्स के बिना ऐसा क्यों करना चाहते हैं? – tangens

+0

मैं अपना खुद का नियंत्रण बनाता हूं, और मैं कन्स्ट्रक्टर – piotrek

+6

में प्रीफ़र्ड आकार सेट करना चाहता हूं, यह हेडलेस मोड में फ़ॉन्ट मेट्रिक्स प्राप्त करने के लिए उपयोगी है, यानी एक कमांड लाइन टूल जो फोंट को बिटमैप्स पर संसाधित करता है। –

उत्तर

21

हम्म ... ऐसा नहीं है कि आप FontMetrics प्राप्त करने के लिए ग्राफिक्स की जरूरत काफी तार्किक है। फ़ॉन्ट ऊंचाई, चौड़ाई आदि विभिन्न डिस्प्ले पर भिन्न हो सकता है।

आप कुछ घटक है, तो आप हो रही FontMetrics के लिए उपयोग कर सकते हैं:

component.getFontMetrics(font); 
+0

Thx :) यह – piotrek

+0

@amorfis काम कर रहा है क्या आप सुनिश्चित हैं कि फ़ॉन्ट चौड़ाई और ऊंचाई प्रदर्शन पर निर्भर करती है जबकि मैंने फ़ॉन्ट आकार निर्दिष्ट किया है? –

17

नहीं, तुम जरूरी पाने के लिए की जरूरत नहीं है/का उपयोग ग्राफिक्स वस्तु:

Font font = new Font("Helvetica",Font.PLAIN,12); 
Canvas c = new Canvas(); 
FontMetrics fm = c.getFontMetrics(font); 

यदि आप अभी फोन c.getGraphics() यह शून्य वापस आ जाएगा। यह (कैनवास) headless mode में भी काम करेगा।

+2

यह स्वीकार्य उत्तर होना चाहिए। – SimonT

संबंधित मुद्दे