2023-09-08 09:20:41來源:WPF踐行者
在C#中,可以使用System.Drawing.Bitmap類實(shí)現(xiàn)圖片轉(zhuǎn)內(nèi)存緩存,以方便在不同進(jìn)程之間的共享。以下是一個(gè)示例代碼,演示如何將圖片轉(zhuǎn)換為內(nèi)存緩存數(shù)據(jù)。
1. 圖片轉(zhuǎn)換首先,我們需要將圖片加載到一個(gè)Bitmap對(duì)象中??梢允褂靡韵麓a:
(資料圖片僅供參考)
```csharpusing System.Drawing;Bitmap bitmap = new Bitmap("image.jpg");```
2. 內(nèi)存緩存轉(zhuǎn)換
接下來,我們可以將Bitmap對(duì)象轉(zhuǎn)換為內(nèi)存緩存數(shù)據(jù)??梢允褂靡韵麓a:
```csharpusing System.IO;using System.Runtime.Serialization.Formatters.Binary;MemoryStream stream = new MemoryStream();BinaryFormatter formatter = new BinaryFormatter();formatter.Serialize(stream, bitmap);byte[] buffer = stream.ToArray();```
在以上代碼中,我們使用MemoryStream創(chuàng)建一個(gè)流,并使用BinaryFormatter將Bitmap對(duì)象寫入流中,并使用ToArray函數(shù)將流轉(zhuǎn)換為字節(jié)數(shù)組,以便進(jìn)行進(jìn)程間共享。
3. 共享內(nèi)存緩存接下來,我們可以在另一個(gè)進(jìn)程中使用共享內(nèi)存緩存數(shù)據(jù)??梢允褂靡韵麓a:
```csharpusing System.IO;using System.Runtime.Serialization.Formatters.Binary;byte[] buffer = /* 從另一個(gè)進(jìn)程獲取共享的內(nèi)存緩存數(shù)據(jù) */;MemoryStream stream = new MemoryStream(buffer);BinaryFormatter formatter = new BinaryFormatter();Bitmap bitmap = (Bitmap)formatter.Deserialize(stream);```
在以上代碼中,我們從另一個(gè)進(jìn)程中獲取共享的內(nèi)存緩存數(shù)據(jù),并使用MemoryStream創(chuàng)建一個(gè)流。接著,我們使用BinaryFormatter從字節(jié)數(shù)組讀取Bitmap對(duì)象。注意,需要將返回值轉(zhuǎn)換為Bitmap對(duì)象。
完整示例代碼:
```csharpusing System.Drawing;using System.IO;using System.Runtime.Serialization.Formatters.Binary;// 圖片轉(zhuǎn)換為內(nèi)存緩存public static byte[] ConvertToMemory(Bitmap bitmap){ MemoryStream stream = new MemoryStream(); BinaryFormatter formatter = new BinaryFormatter(); formatter.Serialize(stream, bitmap); byte[] buffer = stream.ToArray(); return buffer;}// 共享內(nèi)存緩存轉(zhuǎn)換為圖片public static Bitmap ConvertToImage(byte[] buffer){ MemoryStream stream = new MemoryStream(buffer); BinaryFormatter formatter = new BinaryFormatter(); Bitmap bitmap = (Bitmap)formatter.Deserialize(stream); return bitmap;}```
在以上示例代碼中,我們定義了ConvertToMemory函數(shù),它接受一個(gè)Bitmap對(duì)象,并將其轉(zhuǎn)換為內(nèi)存緩存數(shù)據(jù)。我們還定義了ConvertToImage函數(shù),它接受一個(gè)字節(jié)數(shù)組,并將其轉(zhuǎn)換為Bitmap對(duì)象。
注意,這種方法只適用于小型圖像。更大的圖像需要使用其他的方法進(jìn)行共享。
本文轉(zhuǎn)載自微信公眾號(hào)「WPF踐行者」,可以通過以下二維碼關(guān)注。轉(zhuǎn)載本文請(qǐng)聯(lián)系公眾號(hào)。
關(guān)鍵詞:
在C 中,可以使用System Drawing Bitmap類實(shí)現(xiàn)圖片轉(zhuǎn)內(nèi)存緩存,以方便
無疑,元宇宙是當(dāng)下炙手可熱的風(fēng)口行業(yè)。無論是傳統(tǒng)玩家,抑或是互聯(lián)網(wǎng)
API(應(yīng)用程序接口)是一種允許不同應(yīng)用程序之間交換數(shù)據(jù)和功能的軟件接
在C++中,純虛函數(shù)和抽象類是面向?qū)ο缶幊讨兄匾母拍?。本文將?huì)深入
好消息,開發(fā)者心心念念的GPT-5終于要來了?今日,OpenAI官宣其首屆開
數(shù)據(jù)中心是現(xiàn)代生活的基本組成部分。在這個(gè)萬物互聯(lián)的時(shí)代,其是我們經(jīng)
MQTT和CoAP都是物聯(lián)網(wǎng)(IoT)使用的輕量級(jí)協(xié)議。它們?cè)谠S多方面相似,但
生成式AI越來越流行,尤其是在商業(yè)領(lǐng)域。不久前,沃爾瑪宣布推出生成式
我是從Oracle5開始使用Oracle的,不過Oracle5、6的時(shí)代,我只是幫用戶
自去年ChatGPT發(fā)布后,業(yè)內(nèi)外都涌現(xiàn)出了一股對(duì)大型語言模型的狂熱情緒
把Span歸于語法糖,可能有些偏了,但偏了就偏了,哈哈,只要是分享就好
MongoDB是一種可伸縮的數(shù)據(jù)庫,支持?jǐn)?shù)據(jù)分片和負(fù)載均衡,以實(shí)現(xiàn)高性能
世界最強(qiáng)AI——ChatGPT可以通過各種考試,甚至輸出回答讓人難以辨別真
開學(xué)季|“芝士”就是力量,5分鐘上學(xué)不遲到的早餐,真的漲知識(shí)了
轉(zhuǎn)眼間,九月來了瓜果漸熟,稻谷飄香,蟹肥菊黃……新的一個(gè)月,繼續(xù)努