首页 > 数据库 >VB.net(C#同理)使用 ServiceStack.Redis 二进制存储、读取图像

VB.net(C#同理)使用 ServiceStack.Redis 二进制存储、读取图像

时间:2024-09-26 16:50:39浏览次数:8  
标签:VB End Sub C# ServiceStack Redis imageBytes key Public

搜索了一下,网上似乎没有相关的内容,于是把自己探索的经验写一下。

'安装提示:首先需要把当前的目标框架设置为.Net Framwork 4.5。
'方法一:复制ebay订单里的DLL\ServiceStack.Redis(整个文件夹),自行添加引用(4个dll)
'方法二:使用Nuget安装servicestack.redis,选择5.0版本



Public Class RedisHelper
    Private redisClient As ServiceStack.Redis.RedisClient

    Public Sub New(redisHost As String)
        redisClient = New ServiceStack.Redis.RedisClient(redisHost, 6379)
    End Sub

    ' 保存图像到 Redis 作为 BitMap
    Public Sub SaveImageToRedis(key As String, imagePath As String)
        Dim imageBytes As Byte() = File.ReadAllBytes(imagePath)
        redisClient.Set(key, imageBytes) ' 直接存储字节数组
    End Sub

    Public Function LoadImageFromRedis(key As String) As Drawing.Image
        Dim imageBytes As Byte() = redisClient.GetBytes(key) ' 获取字节数组
        If imageBytes IsNot Nothing Then
            Dim image As Image = ByteArrayToImage(imageBytes)
            Return image
        End If
        Return Nothing
    End Function

    Public Sub LoadImageToPictureBoxFromRedis(key As String, pictureBox As PictureBox)
        pictureBox.Image = LoadImageFromRedis(key)
    End Sub

    ' 从字节数组创建图像
    Private Function ByteArrayToImage(imageBytes As Byte()) As Image
        Using ms As New MemoryStream(imageBytes)
            Return Image.FromStream(ms)
        End Using
    End Function
End Class

 

调用的话参考:

        Dim redisHelper = New RedisHelper("192.168.1.11") ' 替换为你的 Redis 服务器地址
        ' 将图像数据保存到 Redis
        redisHelper.SaveImageToRedis("jpg", imagePath)'自己设置

        '...

        ' 从 Redis 读取图像并显示在 PictureBox 中
        redisHelper.LoadImageToPictureBoxFromRedis("jpg", pictureBox)'自己设置
    End Sub

 

标签:VB,End,Sub,C#,ServiceStack,Redis,imageBytes,key,Public
From: https://www.cnblogs.com/harryglory/p/18433730

相关文章

  • 实验1 C语言输入输出和简单程序编写
    task11#include<stdio.h>2intmain()3{4printf("0\n");5printf("<H>\n");6printf("II\n");7return0;8}task1_1.c1#include<stdio.h>2intmain()3{4inti=0;5......
  • python 修改cmd窗口标题
    python相关学习资料: https://edu.51cto.com/video/3502.html https://edu.51cto.com/video/3832.html https://edu.51cto.com/video/1158.htmlPython修改CMD窗口标题在编程过程中,我们经常需要在命令行界面(CMD)中运行Python脚本。有时,为了便于区分不同的命令行窗......
  • lol(英雄联盟)缺少及找不到common.dll文件的详细解决方法
    当您尝试启动LOL时,如果遇到系统提示缺少common.dll文件,这可能会影响游戏的正常运行。以下是几种有效解决此问题的方法,一起来详细看看。1.重新安装游戏客户端首先,完全卸载当前的游戏客户端,确保删除所有相关文件和设置。随后,访问《英雄联盟》官方网站或通过WeGame平台下载最......
  • python使用win32gui、win32con窗口函数功能及参数意义
    使用python设置窗口显示、最大化、最小化、隐藏的时候,需要win32gui.ShowWindow(hwnd,win32con.SW_HIDE),那么对于的参数如下:ShowWindow函数的参数有:1.hWnd:窗口句柄,用于标识要操作的窗口;2.nCmdShow:指定窗口如何显示,可以是以下值:SW_HIDE:隐藏窗口并**其他窗口。nCmdShow=0。SW_......
  • Docker Compose 学习笔记
    DockerCompose学习笔记DockerCompose安装安装完DockerEngine后,以插件方式安装DockerCompose:设置安装源sudoyuminstall-yyum-utilssudoyum-config-manager--add-repohttps://download.docker.com/linux/centos/docker-ce.repo安装Composepluginsudo......
  • FICO:常规配置
    FICO后台常规配置定义mySAP系统中的国家:Tcode:OY01SAP系统中的国家已经提前定义好了,无需自行配置,此处只做查看演示 检查货币代码Tcode:OY03SAP系统中的常规的货币代码也已经提前定义好了,一般不做更改此处只做查看演示为货币设置小数位数:Tcode:OY04SAP系统中......
  • AT_arc176_e [ARC176E] Max Vector 题解
    发现数据范围很小,考虑最小割。先对题面做一个转化:构造两个序列\(X=(X_1,X_2,\dots,X_N),Y=(Y_1,Y_2,\dots,Y_N)\)最小化\(\sumX_i+Y_i\),有\(M\)个限制,每个限制有一个序列\(A_1,A_2,\dots,A_n\),需要满足\(\foralli,X_i\geA_i\)或者\(\foralli,Y_i\geA_i\)。考虑怎......
  • MySQL variables:max_connections&&max_user_connections
    结论1:max_connections变量的意义是限制当前mysqlserver中允许同时连接的不同用户数,并不对相同用户的多次连接进行限制结论2:max_user_connections变量的意义是限制当前mysqlserver中允许同时连接的相同用户的连接数,不对连接的不同用户数进行限制结论3:对max_connections变量的......
  • Buildings(AtCoder Beginner Contest 372)
    #include<bits/stdc++.h>#defineendl'\n'usingll=longlong;typedefunsignedlonglongull;usingnamespacestd;voidGordenGhost();signedmain(){#ifdefGordenfreopen("E:/ProgramFiles/CLion2023.2.2/my/exe/in.txt&quo......
  • VScode开发STM32笔记(一)生成bin文件
    操作步骤软件条件1、基于stm32-for-vscode工具开发;2、项目处于打开状态,且生成elf文件;具体的安装环境详见文档:https://blog.csdn.net/weixin_42435984/article/details/141894449具体操作1、通过VScode打开对应的STM32项目;2、使用stm32-for-vscode工具对其进行编译;3......