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

我的数据库中有 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 张单独的图像,但它只显示了一张。

http://img3.mukewang.com/618f82fc000148ba13640768.jpg

守着星空守着你
浏览 175回答 1
1回答

眼眸繁星

这里的问题是您的代码将一个接一个地输出所有四个图像,而您在 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)){&nbsp; &nbsp; // Add the image to the array&nbsp; &nbsp; $images[] = base64_encode($row['pics']);}// Let the client know what type of content we're returningheader('Content-Type: application/json');// Encode the array as json and output itecho json_encode($images);// Exit the script to make sure that we don't get any unwanted output after the jsonexit;这将输出一个 json 数组。您将需要查找如何在 Unity 中解析 json(我知道有支持它),只需遍历数组并在每次迭代时创建输出图像。
打开App,查看更多内容
随时随地看视频慕课网APP