日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢(xún)
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
用C#實(shí)現(xiàn)圖片轉(zhuǎn)內(nèi)存緩存,實(shí)現(xiàn)跨進(jìn)程共享

在C#中,可以使用System.Drawing.Bitmap類(lèi)實(shí)現(xiàn)圖片轉(zhuǎn)內(nèi)存緩存,以方便在不同進(jìn)程之間的共享。以下是一個(gè)示例代碼,演示如何將圖片轉(zhuǎn)換為內(nèi)存緩存數(shù)據(jù)。

1. 圖片轉(zhuǎn)換

首先,我們需要將圖片加載到一個(gè)Bitmap對(duì)象中??梢允褂靡韵麓a:

```csharp
using System.Drawing;




Bitmap bitmap = new Bitmap("image.jpg");
```

2. 內(nèi)存緩存轉(zhuǎn)換

接下來(lái),我們可以將Bitmap對(duì)象轉(zhuǎn)換為內(nèi)存緩存數(shù)據(jù)??梢允褂靡韵麓a:

```csharp
using 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ì)象寫(xiě)入流中,并使用ToArray函數(shù)將流轉(zhuǎn)換為字節(jié)數(shù)組,以便進(jìn)行進(jìn)程間共享。

3. 共享內(nèi)存緩存

接下來(lái),我們可以在另一個(gè)進(jìn)程中使用共享內(nèi)存緩存數(shù)據(jù)。可以使用以下代碼:

```csharp
using 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ì)象。

完整示例代碼:

```csharp
using 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ò)以下二維碼關(guān)注。轉(zhuǎn)載本文請(qǐng)聯(lián)系公眾號(hào)。


網(wǎng)頁(yè)標(biāo)題:用C#實(shí)現(xiàn)圖片轉(zhuǎn)內(nèi)存緩存,實(shí)現(xiàn)跨進(jìn)程共享
標(biāo)題URL:http://m.5511xx.com/article/ccesojs.html