दिलचस्प पोस्ट
क्या कारक PHP यूनिकोड-असंगत बनाते हैं? जावा में एक विधि का अधिकतम आकार? क्या एचटीटीपी क्लाइंट एक साथ उपयोग करने के लिए सुरक्षित है? अजगर में त्रुटि परिभाषित नहीं है क्या रूबी में सिंगल कोट्स बनाम डबल कोट्स का उपयोग करने में कोई लाभ है? एक स्ट्रिंग के रूप में संग्रहीत JavaScript कोड निष्पादित करें क्या मैं वॉली के साथ एक तुल्यकालिक अनुरोध कर सकता हूं? दो अंकों के बीच एक श्रृंखला स्केल करें Styles_base.xml फ़ाइल में त्रुटि – एंड्रॉइड ऐप – कोई संसाधन नहीं मिला जो दिए गए नाम 'एंड्रॉइड से मेल खाता है: Widget.Material.ActionButton' नोडजेएस – एनपीएम के साथ स्थापित करने में त्रुटि दिनचर्या – अगली मंगलवार प्राप्त करें मैं उपवर्तन में हमारे कोड के पुराने संस्करण पर कैसे लौटूं? यूनिक्स (या विंडोज) में (अधिमानतः अनाम) पाइप का उपयोग करते हुए मैं एक प्रक्रिया के stdout को एकाधिक प्रक्रियाओं को कैसे भेज सकता / सकती हूं? जावास्क्रिप्ट हैशमैप समतुल्य सी # का उपयोग कर पैरामीटर के रूप में पास विधि

क्या बिटमैपसोर्स और बिटमैप के बीच कन्वर्ट करने का एक अच्छा तरीका है?

जहां तक ​​मैं बिटमैपसोर्स से बिटमैप को बदलने का एकमात्र तरीका बता सकता हूं असुरक्षित कोड के माध्यम से … इस तरह से ( लेस्टर WPF ब्लॉग से ):

myBitmapSource.CopyPixels(bits, stride, 0); unsafe { fixed (byte* pBits = bits) { IntPtr ptr = new IntPtr(pBits); System.Drawing.Bitmap bitmap = new System.Drawing.Bitmap( width, height, stride, System.Drawing.Imaging.PixelFormat.Format32bppPArgb,ptr); return bitmap; } } 

रिवर्स करने के लिए:

 System.Windows.Media.Imaging.BitmapSource bitmapSource = System.Windows.Interop.Imaging.CreateBitmapSourceFromHBitmap( bitmap.GetHbitmap(), IntPtr.Zero, Int32Rect.Empty, System.Windows.Media.Imaging.BitmapSizeOptions.FromEmptyOptions()); 

क्या ढांचे में कोई आसान तरीका है? और इसका कारण यह है कि इसमें नहीं है (यदि ऐसा नहीं है)? मुझे लगता है कि यह काफी उपयोगी है।

इसकी वजह मुझे इसकी ज़रूरत है क्योंकि मैं एफ़ओएफ़ का प्रयोग एक WPF एप में कुछ छवि कार्यों को करने के लिए करता हूं। डब्ल्यूपीएफ बिटमैपसोर्स / इमेजसोर्स दिखाना चाहता है लेकिन एटॉफ़ बिटमैप पर काम करता है।

वेब के समाधान से एकत्रित समाधान "क्या बिटमैपसोर्स और बिटमैप के बीच कन्वर्ट करने का एक अच्छा तरीका है?"

BitmapBitmapSource का उपयोग करके असुरक्षित कोड का उपयोग किए बिना करना संभव है और Bitmap.LockBits से पिक्सल को सीधे Bitmap कॉपी करें

 Bitmap GetBitmap(BitmapSource source) { Bitmap bmp = new Bitmap( source.PixelWidth, source.PixelHeight, PixelFormat.Format32bppPArgb); BitmapData data = bmp.LockBits( new Rectangle(Point.Empty, bmp.Size), ImageLockMode.WriteOnly, PixelFormat.Format32bppPArgb); source.CopyPixels( Int32Rect.Empty, data.Scan0, data.Height * data.Stride, data.Stride); bmp.UnlockBits(data); return bmp; } 

आप इन दो विधियों का उपयोग कर सकते हैं:

 public static BitmapSource ConvertBitmap(Bitmap source) { return System.Windows.Interop.Imaging.CreateBitmapSourceFromHBitmap( source.GetHbitmap(), IntPtr.Zero, Int32Rect.Empty, BitmapSizeOptions.FromEmptyOptions()); } public static Bitmap BitmapFromSource(BitmapSource bitmapsource) { Bitmap bitmap; using (var outStream = new MemoryStream()) { BitmapEncoder enc = new BmpBitmapEncoder(); enc.Frames.Add(BitmapFrame.Create(bitmapsource)); enc.Save(outStream); bitmap = new Bitmap(outStream); } return bitmap; } 

यह मेरे लिए पूरी तरह से काम करता है

क्या यह आपकी तलाश है?

 Bitmap bmp = System.Drawing.Image.FromHbitmap(pBits); 

संसाधन कोड के भीतर किसी भी बिटमैप संसाधन के लिए पारदर्शी पृष्ठभूमि सेट करने के लिए यहां एक कोड (संसाधन.रेक्स नहीं अक्सर Windows.Forms में उपयोग किया जाता है)। मैं इस मेथोड को कॉल करने से पहले InitializeComponent () – मेथोड मेथोड्स 'कन्वर्टबिटमैप (बिटमैप स्रोत)' और बिटमैपफ्रॉम्स्सोर्स (बिटमैपसोर्स बिटमैपसोर्स) का उपरोक्त मेल्वस से पोस्ट में उल्लेख किया गया है।

 private void SetBitmapResourcesTransparent() { Image img; BitmapSource bmpSource; System.Drawing.Bitmap bmp; foreach (ResourceDictionary resdict in Application.Current.Resources.MergedDictionaries) { foreach (DictionaryEntry dictEntry in resdict) { // search for bitmap resource if ((img = dictEntry.Value as Image) is Image && (bmpSource = img.Source as BitmapSource) is BitmapSource && (bmp = BitmapFromSource(bmpSource)) != null) { // make bitmap transparent and assign it back to ressource bmp.MakeTransparent(System.Drawing.Color.Magenta); bmpSource = ConvertBitmap(bmp); img.Source = bmpSource; } } } } 

यह प्रकाश से तेज और तेज है:

  return Imaging.CreateBitmapSourceFromHBitmap( bitmap.GetHbitmap(), IntPtr.Zero, Int32Rect.Empty, BitmapSizeOptions.FromEmptyOptions() ); 

आप दोनों नामस्थानों के बीच पिक्सेलडाटा साझा कर सकते हैं। आपको कन्वर्ट करने की ज़रूरत नहीं है

SharedBitmapSource का उपयोग करें https://stackoverflow.com/a/32841840/690656