2008-10-22 19 views
9

के रूप में रॉ छवि फ़ाइलों को पढ़ना क्या रॉ छवि छवियों (विशेष रूप से कैनन सीआर 2 और एडोब डीएनजी फाइलें) को पढ़ने के लिए एक अच्छा तरीका है जीडीआई + बिटमैप्स जो उचित रूप से तेज़ है?जीडीआई + बिटमैप्स

मुझे WPF के तहत चलने वाला एक उदाहरण मिला जो किसी भी स्थापित छवि कोडेक का उपयोग करके एक छवि पढ़ेगा और फिर इसे छवि नियंत्रण में प्रदर्शित करेगा। और मैंने WPF छवि को मेमोरीस्ट्रीम में लिखकर और उस से बिटमैप बनाकर एक जीडीआई + बिटमैप बनाने के लिए इस उदाहरण को संशोधित किया। लेकिन यह प्रक्रिया धीमी है! बहुत धीमी गति से! एक साधारण छवि खोलने से मेरे कंप्यूटर पर लगभग 10 सेकंड लगते हैं। इस समाधान के लिए डब्ल्यूपीएफ असेंबली के संदर्भों की भी आवश्यकता है और यह सही नहीं लगता है, खासकर जब से मैं एएसपी.नेट परियोजना में कोड चलाने के लिए नहीं चाहता हूं।

ऐसे प्रोग्राम हैं जो छवियों के बैच रूपांतरण करेंगे, लेकिन अनुरोध किए जाने पर मैं छवियों को गतिशील रूप से परिवर्तित करना पसंद करूंगा।

तो, कोई सुझाव?

उत्तर

6

अस्वीकरण: मैं अटलसॉफ्ट में काम करता हूं।

हमारे DotImage Photo Pro उत्पाद यह कर सकता है। यदि आप इसे स्वयं करने का प्रयास करना चाहते हैं, तो ओपनसोर्स डीसीआरओ को लपेटने में देखें या देखें कि पेंट.नेट कैसे करता है (मुझे लगता है कि इसके लिए एक रॉ प्लगइन है)

+2

डीसीआरओ: http://www.cybercom.net/~dcoffin/dcraw/ –

3

डॉट इमेज फोटो प्रो घटक अच्छी तरह से काम करता था, लेकिन मेरे पास था इसका उपयोग कर कच्ची फाइलों से पूर्वावलोकन छवि निकालने में एक समस्या। यह इस परियोजना के लिए मेरे बजट के बाहर भी है।

लेकिन, मुझे Paint.NET here के लिए रॉ प्लग के लिए कोड मिला और यह मेरी आवश्यकताओं को अनुकूलित करने के लिए काफी आसान था। प्लगइन DCRaw निष्पादन योग्य usign Process.Start चलाता है और StandardOutput स्ट्रीम से इसका आउटपुट पढ़ता है। काफी सरल और तेज़! :-)

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

प्लगइन के लिए लिंक अब और काम नहीं करता है, लेकिन यहाँ कोड मैं छवियों को निकालने के लिए इस्तेमाल किया है। निम्न कोड कच्चे फ़ाइल में संग्रहीत jpg-preview निष्कर्ष निकालता है। अगर आप पूरी छवि चाहते हैं तो आपको -ई तर्क को हटा देना चाहिए। लेकिन ध्यान रखें कि कुछ कैमरों के लिए आपको एक पीपीएम-छवि मिलेगी जिसे जीडीआई + पढ़ नहीं सकता है।

public Stream GetImageData(string inputFile, string dcRawExe) 
{ 


    var startInfo = new ProcessStartInfo(dcRawExe) 
    { 
     Arguments = "-c -e \"" + inputFile + "\"", 
     RedirectStandardOutput = true, 
     UseShellExecute = false 
    }; 

    var process = Process.Start(startInfo); 

    var image = Image.FromStream(process.StandardOutput.BaseStream); 

    var memoryStream = new MemoryStream(); 
    image.Save(memoryStream, ImageFormat.Png); 

    return memoryStream; 
} 

इसके अलावा, आपको DCRaw की एक प्रति की आवश्यकता होगी। http://www.insflug.org/raw/Downloads/

+1

क्या यह EXIF ​​डेटा भी पढ़ सकता है? –

+0

नहीं, लेकिन अन्य कमांड लाइन उपकरण हैं जो exif निकालेंगे। "Dcraw exif" –

+0

के लिए Google पर आज़माएं जिस साइट से आपने लिंक किया है वह नीचे है। आगे तलाशने वालों की मदद के लिए यहां कोड पोस्ट करने का कोई मौका? :) – glenneroo

2

यहाँ, DCRaw की एक सी # बंदरगाह है यद्यपि बल्कि वर्ष (v8.88) शामिल किए जाने वाले नए Canon मॉडल अनुकूलित किया जा सकता:
https://sourceforge.net/projects/dcrawnet/

संपादित मैं इस साइट से DcrawMS.exe इस्तेमाल किया :
मैं सिर्फ रॉ फ़ाइलों से EXIF ​​डेटा को पढ़ने के लिए अपने ही परियोजना में काम करने के लिए मिल गया:

  1. ओपन परियोजना गुण और सेट आउटपुट प्रकार से कक्षा पुस्तकालय
  2. पुन: संकलित करें।
  3. अपनी परियोजना में डीएलएल का संदर्भ जोड़ें।
  4. शीर्ष पर using dcraw; जोड़ें।
  5. कोड की इन पंक्तियों घोषित:

    DcRawState state = new DcRawState(); 
    state.inFilename = filename; 
    state.ifp = new RawStream(filename); 
    
    
    Identifier id = new Identifier(state); 
    id.identify(state.ifp); 
    

अब राज्य के अंदर सभी उपहार की जाँच (यह मानते हुए अपने रॉ फ़ाइल समर्थित है और एक अपवाद का कारण नहीं;)

0

रुको। बस मेरी .NET एमवीसी परियोजना के लिए इस पर ठोकर खाई। रॉ कर सकते हैं, साथ ही दुनिया में कुछ भी आप सपने देख सकते हैं। कोड, उदाहरण, और कई अलग प्रोग्रामिंग भाषा विकल्प शामिल हैं। यह बहुत अच्छा लग रहा है कि मुझे इसका उपयोग करने से पहले कुछ पैसे दान करना पसंद है।

Google को "imagemagck" पर एक लिंक डालने की अनुशंसा नहीं की जाती है। एक विकिपीडिया प्रविष्टि भी है।

मुझे आशा है कि इससे किसी की मदद मिलेगी।

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