为了账号安全,请及时绑定邮箱和手机立即绑定

如何将数据库中的多个图像统一显示

如何将数据库中的多个图像统一显示

PHP
守着星空守着你 2021-11-13 17:18:28
我的数据库中有 4 张图像,我想统一显示所有 4 张图像。我正在做的是我在 php 中使用 base64_encode 函数将我的图像显示为浏览器中的字符串,然后统一将该字符串转换为图像,但问题是它将所有 4 个图像的字符串视为 1 个且仅显示第一个。我试过在 php 中分隔字符串,但 unity 无法理解换行,我不知道如何分隔它们。一旦它们分开 ik 我可以制作一个字符串数组并将它们保存在其中。<?php    $servername = "localhost";    $username = "root";    $password = "";    $dbName = "picture";    //Make connection    $conn = new mysqli($servername, $username, $password, $dbName);    //Check connection    if(!$conn)    {        die("Connection failed.". mysqli_connect_error());    }    //    //else echo("Connection success") . "<br>";;    $sql = "SELECT * FROM images";    $result = mysqli_query($conn, $sql);    if(mysqli_num_rows($result) > 0)    {        //show data for each row        while($row = mysqli_fetch_assoc($result))        {            //echo '<img src="data:image/jpeg;base64,'.base64_encode($row['pics']).'"/>';            echo "".base64_encode($row['pics']);        }    }?>private string imageString = "";    private void Start()    {        StartCoroutine(GetImage());    }    IEnumerator GetImage()    {        WWWForm imageForm = new WWWForm();        WWW wwwImage = new WWW("http://localhost/Insert_Images/index.php");        yield return wwwImage;        imageString = (wwwImage.text);    }    private void OnGUI()    {        byte[] Bytes = System.Convert.FromBase64String(imageString);        Texture2D texture = new Texture2D(1, 1);        texture.LoadImage(Bytes);        GUI.DrawTexture(new Rect(200, 20, 440, 400), texture, ScaleMode.ScaleToFit, true, 1f);    }结果应该是 4 张单独的图像,但它只显示了一张。
查看完整描述

1 回答

?
眼眸繁星

TA贡献1873条经验 获得超9个赞

这里的问题是您的代码将一个接一个地输出所有四个图像,而您在 Unity 中的代码获得完整的输出并将其显示为一个图像。


您可以将数据输出为一个json数组,然后在 Unity 中解析并单独创建每个图像,而不是像现在这样将所有图像输出为一个大块。


要在 PHP 中创建 json,您可以这样做:


// Create an array in which we will save the images and then encode as json

$images = [];


while($row = mysqli_fetch_assoc($result))

{

    // Add the image to the array

    $images[] = base64_encode($row['pics']);

}


// Let the client know what type of content we're returning

header('Content-Type: application/json');


// Encode the array as json and output it

echo json_encode($images);


// Exit the script to make sure that we don't get any unwanted output after the json

exit;

这将输出一个 json 数组。您将需要查找如何在 Unity 中解析 json(我知道有支持它),只需遍历数组并在每次迭代时创建输出图像。


查看完整回答
反对 回复 2021-11-13
  • 1 回答
  • 0 关注
  • 171 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信