人人妻人人澡人人爽人人精品av_精品乱码一区内射人妻无码_老司机午夜福利视频_精品成品国色天香摄像头_99精品福利国产在线导航_野花社区在线观看视频_大地资源在线影视播放_东北高大肥胖丰满熟女_金门瓶马车内剧烈运动

首頁>國內(nèi) > 正文

用C#實(shí)現(xiàn)圖片轉(zhuǎn)內(nèi)存緩存,實(shí)現(xiàn)跨進(jìn)城共享

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)鍵詞:

相關(guān)新聞

Copyright 2015-2020   三好網(wǎng)  版權(quán)所有 聯(lián)系郵箱:435 22 [email protected]  備案號(hào): 京ICP備2022022245號(hào)-21