목록

texture to base64

—Unity Editor Tools로 뺴둘 기능(정리안된)

  • 참고 코드 - texture를 base64로 변환 기능

base64 string형식을 유니티 sprite형식으로 변환

에디터에 표시할 이미지들은 아예 const string으로 base64형태로 잡아놓고 필요 시 sprite변환해 사용하는 형태로 많이 쓰는거 같다.

-> 아 요런 방법으로도 이미지 표시할 수 있구나 라고 생각

using UnityEngine;
using UnityEngine.UI;
using System.IO;
using System.Text;
using System;

public class ButtonConvert : MonoBehaviour
{
    [SerializeField] private Image image;
    public void OnClick()
    {
        string base64String = ReadFile("gahaha.base64.txt");
        if (string.IsNullOrEmpty(base64String)) {
            return;
        }
        this.image.sprite = SpriteFromBase64(base64String);
    }

    string ReadFile(string fileName)
    {
        // read base64 file
        FileInfo fileInfo = new FileInfo(Application.dataPath + "/Base64/" + fileName);
        string base64String = "";
        try {
            using (StreamReader reader = new StreamReader(fileInfo.OpenRead(), Encoding.UTF8)){
                base64String = reader.ReadToEnd();
            }
        } catch (Exception e){
            Debug.LogError(e);
        }
        return base64String;
    }

    Sprite SpriteFromBase64(string base64String)
    {
        // base64 -> bytes
        byte[] bytes = Convert.FromBase64String(base64String.Split(',')[1]);

        // bytes -> texture
        Texture2D texture2D = new Texture2D(1, 1);
        texture2D.LoadImage(bytes);

        // texture -> sprite
        return Sprite.Create(texture2D, new Rect(0, 0, texture2D.width, texture2D.height), Vector2.zero);
    }
}

—실제 적용 예시

작업중…