一、在MySQL中存储图片
可以参考我这篇文章:在MySQL中存储图片
二、使用Unity从MySQL中提取图片
在Unity中,可以使用MySQL Connector/NET等库来连接到MySQL数据库,并执行查询来提取图片数据,关于Unity连接MySQL数据库可以参考我这篇文章:
这篇主要展示:使用Unity从MySQL中提取图片,步骤如下:
2.1 打开Unity,创建项目。
2.2 创建UI Image ,调整位置与大小。
大小示例:(这个根据需求自己调就好)
此处Image 用来存放从数据库中加载的图片。
2.3 编写代码:
using System.Data;
using MySql.Data.MySqlClient;
using UnityEngine;
using UnityEngine.UI;
public class ImageBlobLoader : MonoBehaviour
{
public Image im;
//示范:"Server=127.0.0.1;Database=pic;User=root;Password=123456;"
private const string connectionString = "Server=myServerAddress;Database=myDataBase;User=myUsername;Password=myPassword;";
void Start()
{
LoadImageFromDatabase(3);
}
void LoadImageFromDatabase(int imageID)
{
using (MySqlConnection connection = new MySqlConnection(connectionString))
{
connection.Open();
Debug.Log("数据库已连接");
string query = "SELECT ImageData FROM imagesblob WHERE ImageID = @ImageID";
MySqlCommand cmd = new MySqlCommand(query, connection);
cmd.Parameters.AddWithValue("@ImageID", imageID);
using (MySqlDataReader reader = cmd.ExecuteReader())
{
if (reader.Read())
{
Debug.Log("数据库存在该数据");
byte[] imageData = (byte[])reader["ImageData"];
Texture2D texture = new Texture2D(2, 2);
texture.LoadImage(imageData);
//创建一个Sprite,以Texture2D对象为基础
Sprite sp = Sprite.Create(texture, new Rect(0, 0, texture.width, texture.height), Vector2.zero);
// Now 'texture' contains the image data. You can use it as needed.
im.sprite = sp;
}
}
}
}
}
2.4 挂载脚本,拖入物体并运行。
将该脚本挂载在场景中的任意物体上,同时将刚刚创建的Image拖到脚本指定位置,最后运行。
三 、运行结果