2009-06-03 9 views
6

एक डिजाइन कंपनी ने 2 साल पहले WPF में एक एप्लिकेशन डिज़ाइन किया था, और अब हम छवियों में से किसी एक पर टेक्स्ट को बदलना चाहते हैं। कोई एसवीजी फाइलें प्रदान नहीं की गई थीं, केवल एक्सएएमएल कोड का इस्तेमाल किया गया था, और डेवलपर जो डिजाइन कंपनी में प्रोजेक्ट पर काम करता था अब वहां काम नहीं करता है। मुझे पता है कि उन्होंने डिजाइन के लिए अभिव्यक्ति मिश्रण का इस्तेमाल किया था।क्या आप XAML DrawingImage को संपादन के लिए एक एसवीजी में वापस परिवर्तित कर सकते हैं?

क्या उपकरण इस XAML उत्पन्न करने के लिए इस्तेमाल किया गया संभव तरीके एसवीजी को इस तरह XAML कन्वर्ट करने के लिए मदद मिलेगी, या पर भी सुझावों के साथ किसी भी मदद करते हैं। मैंने this topic on converting XAML to SVG, देखा लेकिन ऐसा लगता है कि उपकरण केवल मूल रूप से उनके उपकरण में परिवर्तित एसवीजी के साथ रूपांतरण करते थे।

एक संसाधन शब्दकोश में सभी ड्राइंग छवि वस्तुओं को एप्लिकेशन के माध्यम से छवियों को प्रदर्शित करने के लिए उपयोग किया जाता है। यहां छवियों हम editting पर देख रहे हैं में से एक है:

<DrawingImage x:Key="MotorControlBackground"> 
<DrawingImage.Drawing> 
    <DrawingGroup> 
    <DrawingGroup.Children> 
     <GeometryDrawing Brush="#FF466280" Geometry="F1 M -1138.47,3547.06C -1128.45,3557.08 -1112.14,3557.17 -1102.23,3547.25L -1024.29,3469.32L -1118.83,3374.78L -1214.79,3470.74L -1138.47,3547.06 Z "> 
     <GeometryDrawing.Pen> 
      <Pen Thickness="2.5" MiterLimit="2.75" Brush="#FF212121"/> 
     </GeometryDrawing.Pen> 
     </GeometryDrawing> 
     <GeometryDrawing Brush="#FFFFFFFF" Geometry="F1 M -1131.22,3533.84L -1138.68,3533.84L -1138.68,3532.34L -1135.91,3532.34L -1135.91,3521.89L -1138.68,3521.89L -1138.68,3520.4C -1137.64,3520.4 -1136.87,3520.25 -1136.38,3519.95C -1135.88,3519.65 -1135.6,3519.09 -1135.54,3518.26L -1133.99,3518.26L -1133.99,3532.34L -1131.22,3532.34L -1131.22,3533.84 Z "/> 
     <!-- ... Heavily shortened. Expect around 100 more lines here ... --> 
     <GeometryDrawing Geometry="F1 M -1175.94,3268.96L -1057.64,3475.82"> 
     <GeometryDrawing.Pen> 
      <Pen Thickness="1.33333" MiterLimit="2.75" Brush="#88C7C7C7"/> 
     </GeometryDrawing.Pen> 
     </GeometryDrawing> 
     <GeometryDrawing Geometry="F1 M -1086.99,3255.92L -1147.5,3485.59"> 
     <GeometryDrawing.Pen> 
      <Pen Thickness="1.33333" MiterLimit="2.75" Brush="#88C7C7C7"/> 
     </GeometryDrawing.Pen> 
     </GeometryDrawing> 
     <GeometryDrawing Brush="#FF0C407C" Geometry="F1 M -1025.41,3324.46C -1035.45,3304.48 -1051.7,3288.14 -1071.58,3278.06C -1085.54,3270.98 -1101.28,3266.99 -1117.91,3266.99C -1131.79,3266.99 -1145.06,3269.78 -1157.2,3274.82C -1182.66,3285.41 -1203.09,3305.94 -1213.63,3331.52C -1218.64,3343.71 -1221.42,3357.05 -1221.42,3371C -1221.42,3385.48 -1218.44,3399.29 -1213.06,3411.83C -1202.56,3436.34 -1182.94,3456.06 -1158.55,3466.61C -1146.05,3472.01 -1132.31,3475.02 -1117.91,3475.02C -1103.67,3475.02 -1090.09,3472.09 -1077.72,3466.81C -1052.97,3456.24 -1033.07,3436.25 -1022.56,3411.38C -1017.3,3398.95 -1014.39,3385.3 -1014.39,3371C -1014.39,3354.3 -1018.37,3338.48 -1025.41,3324.46 Z "/> 
     <!-- ... shortened some more ... --> 
     <GeometryDrawing Geometry="F1 M -1021.98,3324.73C -1021.98,3355.74 -1069.88,3368.43 -1117.29,3372.09C -1117.75,3372.13 -1120.57,3372.05 -1120.57,3372.05C -1167.81,3368.32 -1215.32,3355.62 -1215.32,3324.73C -1215.32,3286.57 -1170.4,3255.35 -1115.48,3255.35L -1121.82,3255.35C -1066.92,3255.35 -1021.98,3286.57 -1021.98,3324.73 Z "> 
     <GeometryDrawing.Brush> 
      <LinearGradientBrush StartPoint="0.548505,0.143509" EndPoint="0.548505,0.805904"> 
      <LinearGradientBrush.GradientStops> 
       <GradientStop Color="#7FFFFFFF" Offset="0"/> 
       <GradientStop Color="#00FFFFFF" Offset="1"/> 
      </LinearGradientBrush.GradientStops> 
      </LinearGradientBrush> 
     </GeometryDrawing.Brush> 
     </GeometryDrawing> 
    </DrawingGroup.Children> 
    </DrawingGroup> 
</DrawingImage.Drawing> 
</DrawingImage> 

उत्तर

5

इंकस्केप (एक एसवीजी संपादक) XAML के लिए सीमित समर्थन हासिल है।

पिछली बार मैंने कोशिश की, एक्सएएमएल समर्थन सही नहीं था, लेकिन शायद 6 महीने पहले था। तब से यह सुधार हो सकता है।

+1

हालांकि यह अंत में मेरी समस्या का समाधान नहीं करता है, लेकिन मैंने इस तथ्य के आधार पर उत्तर स्वीकार कर लिया कि मुझे नहीं पता था कि इंकस्केप में एक्सएएमएल समर्थन था, और मैं संभवतः इंकस्केप के प्रारूपण को समझ सकता हूं, पथों को कॉपी-पेस्ट कर सकता हूं मेरा अपना एक्सएएमएल, और फिर से खोलें। मैंने सीखा कि उपरोक्त कोड इलस्ट्रेटर में एक छवि बनाने, माइक्रोसॉफ्ट डिजाइन को आयात करने और इसे माइक्रोसॉफ्ट ब्लेंड में आयात करने के माध्यम से उत्पन्न किया गया था। –

+0

माइक्रोसॉफ्ट डिजाइन द्वारा कौन सा प्रोग्राम मतलब है? http://www.microsoft.com/en/us/sitemap.aspx# उत्पाद बताते हैं कि "डिज़ाइन और उपयोगकर्ता अनुभव" श्रेणी में केवल अभिव्यक्ति और सिल्वरलाइट शामिल है। –

+0

मुझे समाधान मिला। इसे माइक्रोसॉफ्ट एक्सप्रेशन डिजाइन 4 कहा जाता है और माइक्रोसॉफ्ट एक्सप्रेशन स्टूडियो 4 अल्टीमेट स्थापित करते समय स्थापित किया जाता है। –

1

यह http://www.codeproject.com/Articles/422523/Convert-XAML-Vector-Graphic-to-PNG के माध्यम से एक्सएएमएल को पीएनजी में परिवर्तित करने का एक समाधान हो सकता है और फिर पीएनजी को एसवीजी में परिवर्तित कर सकता है। रूपांतरण के संदर्भ में पीएनजी और एसवीजी के बीच और विकल्प हैं। मैंने इस दृष्टिकोण के साथ अपने एक्सएएमएल चित्रों को ईएमएफ में परिवर्तित कर दिया है।

+2

एक्सएमएल और एसवीजी वेक्टर प्रारूप हैं जबकि पीएनजी एक पिक्सेल प्रारूप है, इसलिए पीएनजी से एसवीजी में जाने में कोई बात नहीं है ... – Peter

+0

@ पीटर यह बहुत से लोगों के लिए प्रासंगिक हो सकता है यदि उनके पास ऐसा उपकरण है जो एसवीजी का समर्थन नहीं करता । वेक्टर से पिक्सेल तक जाने के लिए तुच्छ है, बस दूसरी तरफ नहीं। – Chazt3n

+1

@ Chazt3n वेक्टर से पिक्सेल तक जाने पर आप डेटा को बहुत खो देते हैं, इसलिए वेक्टर -> पिक्सेल -> वेक्टर से जाने के लिए एक बुरा विचार है, यदि संभव हो तो पिक्सेल चरण छोड़ दें अन्यथा आप 99.9% सुनिश्चित कर सकते हैं कि यह वही नहीं है वेक्टर छवि अब और ... – Peter

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

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