इसका प्रयोग:
सार्वजनिक स्थिर शून्य DrawNormalizedAudio (ref float [] डेटा, PictureBox pb , रंग का रंग) {बिटमैप बीएमपी; अगर (pb.Image == नल) {bmp = नया बिटमैप (pb.Width, pb.Height); } Else {bmp = (बिटमैप) pb.Image; } इंट BORDER_WIDTH = 5; इंट चौड़ाई = बीएमपी। वाइड - (2 * BORDER_WIDTH); Int height = bmp.Height - (2 * BORDER_WIDTH); का उपयोग (ग्राफिक्स जी = ग्राफिक्स। फ़्रेमइज़ेज़ (बीएमपी)) {g.Clear (Color.Black); पेन पेन = नया पेन (रंग); Int आकार = डेटा। लांघ; (आईआईपीक्सल = 0; आईपिक्सेल व एलटी; चौड़ाई; आईपीिक्सएल ++) के लिए {// निर्धारित करें और समापन बिंदुएं WAV int के भीतर प्रारंभ करें = (इंट) ((फ्लोट) आईपिक्सल * (फ्लोट) आकार / (फ़्लोट) चौड़ाई); Int end = (int) ((फ्लोट) (आईपिक्सल + 1) * ((फ्लोट) आकार / (फ्लोट) चौड़ाई)); फ्लोट मिन = फ्लोट। मैक्सवैल्यू; फ्लोट मैक्स = फ्लोट.इन वेल्यू; (इंट i = स्टार्ट; आई एंड एलटी; एंड; आई ++) के लिए {फ्लोट वैल = डाटा [आई]; Min = val & lt; न्यूनतम? Val: min; अधिकतम = वैल & gt; अधिकतम? Val: अधिकतम; } Int yMax = BORDER_WIDTH + ऊंचाई - (पूर्णांक) ((अधिकतम + 1) * .5 * ऊँचाई); इंट yMin = BORDER_WIDTH + ऊंचाई - (इंट) ((न्यूनतम + 1) * .5 * ऊँचाई); जी। ड्रॉलाइन (कलम, आईपिक्सेल + BORDER_WIDTH, yMax, आईपिक्सेल + BORDER_WIDTH, yMin); }} Pb.Image = bmp; } मुझे इस पंक्ति में एक त्रुटि मिली:
जी। ड्रॉलाइन (कलम, आईपिक्सेल + BORDER_WIDTH, yMax, iPixel + BORDER_WIDTH, yMin); यह कहता है कि ऑपरेशन ओवरफ़्लो (शून्य से विभाजित नहीं हो सकता) या ऐसा कुछ। समस्या पर कोई सुराग? धन्यवाद।
अद्यतन करें: फ़ंक्शन को कॉल करने के लिए उपयोग करने वाले कोड हैं:
fileName = "c: \\ sound \\ happy_birthday.wav"; बाइट [] बाइट्स = फ़ाइल। पढ़ें AllBytes (fileName); फ्लोट [] मिलीग्राम = फ्लोटएराएफ़्रॉइटएरे (बाइट्स); DrawNormalizedAudio (रेफरीवेल, चित्रबॉक्स 1, रंग। व्हाइट);
आप शून्य से विभाजित हैं ऐसा मत करो, क्योंकि यह ऑपरेशन अमान्य है। DrawLine से गुजरने वाले मानों की जांच नहीं करें।
Comments
Post a Comment