2016-03-03 9 views
5

का उपयोग कर एक पीसी फ़ाइल में कनवर्ट करें। मैं .png फ़ाइल को .pcx फ़ाइल में कनवर्ट करने का प्रयास कर रहा हूं। परिदृश्य निम्न है:एक पीएनजी फ़ाइल को सी #

मैं एक टीएससी टीटीपी -343 सी लेबल प्रिंटर का उपयोग कर रहा हूं। लेबल पर मुझे छवियों को प्रिंट करना होगा। टीएससी डेवलपर्स के लिए library documentation प्रदान करता है। चूंकि मैं केवल उन लेबलों पर चित्रों को प्रिंट कर सकता हूं जो पीसीसी फाइलों का उपयोग कर मुझे सभी छवियों को पीसीएक्स छवियों में परिवर्तित करना है। कोई अन्य प्रारूप या यहां तक ​​कि गलत पीसीएक्स प्रारूप (उदाहरण के लिए यदि उपयोगकर्ता ने फ़ाइल को समाप्त करने का नाम बदल दिया है) लेबल पर मुद्रित नहीं किया जाएगा।

मैंने this postMagick लाइब्रेरी से लिंक किया है। इस पोस्ट में, ओपी एक बीएमपी फ़ाइल को एक पीसीएक्स फ़ाइल में बदलने की कोशिश कर रहा है जो कि मैं हासिल करने की कोशिश नहीं करता हूं। मैंने Magickdocumentation को converting images पर देखा। मैंने छवियों को बदलने की कोशिश की:

using (MagickImage img = new MagickImage(png)) // png is a string containing the path of the .png file 
{ 
    img.Format = MagickFormat.Pcx; 
    img.Write(pcx); // pcx is a string containing the path of the new .pcx file 
} 

दुर्भाग्य से यह छवि को सही ढंग से सहेज नहीं रहा है। लेबल प्रिंटर अभी भी लेबल पर छवि मुद्रित नहीं कर सकता है। मैंने एक सही पीसीएक्स फ़ाइल प्रिंट करने की कोशिश की और यह ठीक काम किया। तो मुझे लगता है कि यह अभी भी काम नहीं कर रहा एकमात्र कारण यह है कि परिवर्तित फ़ाइल वास्तविक पीसीएक्स फ़ाइल नहीं है।

क्या ऐसा कोई रूपांतरण करने का कोई तरीका है? यदि हां, तो मैं इसे कैसे प्राप्त कर सकता हूं? मेरा एप्लिकेशन एक विंडोज़ फॉर्म एप्लीकेशन है, जिसे सी # में .NET फ्रेमवर्क 4.5.2 का उपयोग करके लिखा गया है।

संपादित करें:

यहाँ आप एक उदाहरण देखते हैं कि कैसे एक pcx फ़ाइल के साथ एक लेबल मुद्रित करने के लिए कर सकते हैं:

TSC.openport(sPrinterName); 
TSC.setup("100", "100", "4", "8", "1", "3.42", "0"); 
TSC.clearbuffer(); 

TSC.downloadpcx(@"\\PathToPcxFile\test.pcx", "test.pcx"); 
TSC.sendcommand("PUTPCX 35," + y + ",\"test.pcx\""); 

TSC.printlabel("1", "1"); 
TSC.closeport(); 

इस कोड को वास्तविक pcx फाइलों पर ठीक काम करता है। टीएससी लाइब्रेरी के तरीके आपको here मिल सकते हैं।

downloadpcx (क, ख)

विवरण:

एक: प्रिंटर पैरामीटर को डाउनलोड मोनो PCX ग्राफिक फ़ाइलों स्ट्रिंग; फ़ाइल नाम

ख (फ़ाइल पुनर्प्राप्ति पथ सहित): स्ट्रिंग, फ़ाइलों को प्रिंटर स्मृति में डाउनलोड किया जा करने के लिए कर रहे हैं के नाम (बड़े अक्षरों का उपयोग करें)

स्रोत: http://www.tscprinters.com/cms/upload/download_en/DLL_instruction.pdf

संपादित करें II:

एक पीसीएक्स फ़ाइल जो काम कर रही है (फ़ोटोशॉप का उपयोग करके बनाई गई) इस तरह दिखती है (यदि यह आपकी मदद करती है):

enter image description here

+0

आप जो [pcx प्रारूप] के बारे में कुछ भी देखा (https://en.wikipedia.org/विकी/पीसीएक्स) ठीक है? या आप काम करने के लिए काम कर सकते हैं? क्या आपको रंगों की आवश्यकता होगी? – TaW

+0

@TAW मुझे प्रलेखन में कोई विशिष्ट प्रारूप नहीं मिल रहा है। मैंने अपने प्रश्न में एक कामकाजी उदाहरण (केवल सही रूपांतरित परिवर्तित पीसीएस फाइलों के साथ काम करना) जोड़ा, कृपया एक नज़र डालें। रंगों की जरूरत नहीं है। प्रिंटर मुझे लगता है कि रंग मुद्रित करने में भी सक्षम नहीं है। – Roman

+0

@TAW मैंने एक पीसीएक्स फ़ाइल का एक स्क्रीनशॉट जोड़ा जो मेरे प्रश्न पर काम कर रहा है। उम्मीद है कि यह आपकी मदद करता है। – Roman

उत्तर

6

PCX files (सबसे अच्छा) पैलेट-आधारित हैं।

तो एक वैध pcx उत्पादन बनाने के लिए आप इस एक लाइन जोड़ने की जरूरत:

using (MagickImage image = new MagickImage(sourcePng)) 
{ 
    image.Format = MagickFormat.Pcx; 
    image.ColorType = ColorType.Palette; // <---- 
    image.Write(targetPcx); 
} 

Your image as pcx file

+3

आप नहीं जानते कि मैं अभी कितना आभारी हूं! आपका बहुत बहुत धन्यवाद। – Roman

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