学习
实践
活动
专区
工具
TVP
写文章
专栏首页呆呆敲代码的小Y 公众号【100个 Unity实用技能】| Unity将本地图片文件显示到Image组件中 通用方法整理

【100个 Unity实用技能】| Unity将本地图片文件显示到Image组件中 通用方法整理

Unity 小科普

老规矩,先介绍一下 Unity 的科普小知识:

  • Unity是 实时3D互动内容创作和运营平台 。
  • 包括游戏开发、美术、建筑、汽车设计、影视在内的所有创作者,借助 Unity 将创意变成现实。
  • Unity 平台提供一整套完善的软件解决方案,可用于创作、运营和变现任何实时互动的2D和3D内容,支持平台包括手机、平板电脑、PC、游戏主机、增强现实和虚拟现实设备。
  • 也可以简单把 Unity 理解为一个游戏引擎,可以用来专业制作游戏!
  • 🎬 博客主页:https://xiaoy.blog.csdn.net
  • 🎥 本文由 呆呆敲代码的小Y 原创,首发于 CSDN🙉
  • 🎄 学习专栏推荐:Unity系统学习专栏
  • 🌲 游戏制作专栏推荐:游戏制作
  • 🌲Unity实战100例专栏推荐:Unity 实战100例 教程
  • 🏅 欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!
  • 📆 未来很长,值得我们全力奔赴更美好的生活✨
  • ------------------❤️分割线❤️-------------------------

Unity 实用小技能学习

Unity将本地图片文件显示到Image组件中 通用方法整理

本文总结了两种将本地图片文件显示到Image组件中 的两种方法,下面一起来看一下吧!

方法一:通过命名空间 System.IO 加载本地图片文件

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

public class Demo : MonoBehaviour
{
	public Image _faceSearchImage;
	private Texture2D m_Tex;

	/// <summary>
	/// 根据路径读取本地文件并转换为Texture2D文件
	/// </summary>
	/// <param name="path"></param>
	private void LoadFromFile(string path)
	{
		m_Tex = new Texture2D(1, 1);
		//读取图片字节流
		m_Tex.LoadImage(ReadPNG(path));

		//变换格式
		Sprite tempSprite = Sprite.Create(m_Tex, new Rect(0, 0, m_Tex.width, m_Tex.height), new Vector2(10, 10));
		_faceSearchImage.sprite = tempSprite;//赋值
	}

	private byte[] ReadPNG(string path)
	{
		Debug.Log(path);
		FileStream fileStream = new FileStream(path, FileMode.Open, System.IO.FileAccess.Read);

		fileStream.Seek(0, SeekOrigin.Begin);
		//创建文件长度的buffer
		byte[] binary = new byte[fileStream.Length];
		fileStream.Read(binary, 0, (int)fileStream.Length);
		fileStream.Close();
		fileStream.Dispose();
		fileStream = null;

		return binary;
	}
}

方法二:通使用 UnityWebRequest 加载本地图片文件

using System.Collections;
using System.Collections.Generic;
using System.IO;
using UnityEngine;
using UnityEngine.Networking;
using UnityEngine.UI;

public class Demo : MonoBehaviour
{
	public Image _faceSearchImage;

	//根据路径或者URL读取本地文件并转换为Texture2D文件
	public void GetBookSprite(string url)
	{
		StartCoroutine(DownSprite(url));
	}

	IEnumerator DownSprite(string url)
	{
		var uri = new System.Uri(Path.Combine(url));
		UnityWebRequest www = UnityWebRequest.Get(uri);
		DownloadHandlerTexture texDl = new DownloadHandlerTexture(true);
		www.downloadHandler = texDl;

		yield return www.SendWebRequest();

		if (www.isHttpError || www.isNetworkError)
		{
			Debug.LogError(www.error);
		}
		else
		{
			Texture2D tex = new Texture2D(1, 1);
			tex = texDl.texture;
			Sprite sprite = Sprite.Create(tex, new Rect(0, 0, tex.width, tex.height), new Vector2(0.5f, 0.5f));
			_faceSearchImage.sprite = sprite;
		}
	}
}

本文参与 腾讯云自媒体分享计划 ,欢迎热爱写作的你一起参与!
本文分享自作者个人站点/博客:https://blog.csdn.net/zhangay1998复制
如有侵权,请联系 cloudcommunity@tencent.com 删除。
登录 后参与评论
0 条评论

相关文章

  • 0代码 实现“嫦娥奔月“小动画,一起来看看这 ‘漂亮‘的嫦娥 吧【仅供娱乐】

    先选中Main Camera相机,然后在属性面板中选中纯色渲染,并把颜色改为纯黑色!

    呆呆敲代码的小Y
  • 零基础入门 10: 编辑器下的UGUI Image

    Image组件是Unity里显示图片的组件,可以将Sprite类型的图片显示在Canvas下。

    韩东吉
  • 【Unity 优化篇】 | 优化专栏《导航帖》,全面学习Unity优化技巧,让我们的Unity技术上升一个档次

    本篇文章会对我开的这个 『Unity精品学习专栏⭐️』 做一个简单的概述,简而言之就是一个目录。

    呆呆敲代码的小Y
  • 零基础入门 11: 通过脚本设置UGUI Image

    因为默认的脚本是没有引入UnityEngine库的。所以当我们新创建了一个脚本后,在脚本上方加入UnityEngine的引用。

    韩东吉
  • Unity中的一些优化建议

    在Unity中,相比漫无目的地调整代码,选择正确的脚本优化更能提高代码的执行效率。但值得注意的是,最好的优化并不是简单地降低代码的复杂度。各个平台通用的优化方案...

    张曙光
  • 零基础入门 23: UGUI ScrollView

    今天要分享的内容,是近期内关于UGUI的最后一篇,UGUI里的滚动视图ScrollView,后期的内容会根据项目实用的功能组件进行分享。

    韩东吉
  • 教程|Unity中使用Tilemap快速创建2D游戏世界

    本篇文章是Unity的技术团队给大家做的关于在Unity中如何使用Tilemap快速创建2D游戏世界,一起来看看吧。

    张曙光
  • Unity3D研究院之打开照相机与本地相册进行裁剪显示

    Unity与Android的交互 如果有不会的朋友请看MOMO之前的文章喔,Unity3D研究院之打开Activity与调用JAVA代码...

    bering
  • 如何用Unity导出H5与小游戏的3D场景

    Unity是移动APP游戏的主流引擎,但是在当前小游戏平台(微信小游戏\百度小游戏\字节小游戏等等)火热的大潮之下,用Unity工具编辑3D场景然后导出资源开发...

    Layabox Charley
  • 如何快速优化手游性能问题?从UGUI优化说起

    作者Feefi,加入腾讯多年,目前主要从事Unity项目UI开发及优化相关工作,曾获得国际软件设计大赛“成都创业金钥匙”奖。

    WeTest质量开放平台团队
  • 记一次Unity3D中WWW加载本地图片很慢的BUG

    2017-05-11 by Liuqingwen | Tags: Unity3D | Hits

    IT自学不成才
  • Unity3D高级-AssetBundle使用

    我们经常下载一些游戏App,如果Wifi情况下,App大小就无关紧要。但是如果是流量呢?一看到App的大小,直接就不下了。但是游戏公司怎么会不知道?所以采用热更...

    孙寅
  • Unity3D之如何将包大小减少到极致

    Unity3D之如何将包大小减少到极致,图片是游戏app里最最占空间的资源,所以请各位还没有理解u3d对图片文件存储方式理解的请看《unity3d-textur...

    全栈程序员站长
  • 3D场景编辑导出-LayaAir引擎Unity插件使用详解

    有开发者问过LayaAir引擎是否会有自己的3D场景编辑器,首先可以肯定的讲,一定会有。3D编辑器是LayaAir3.x引擎规划的基础组成部分(3.x正在研发...

    Layabox Charley
  • Unity基础(3)-引擎界面介绍(2)

    接上一篇:Unity3D基础(一)引擎界面介绍 这一篇主要讲解里面具体内容,看完这两篇帖子就可以进行开发了,前提是你已经具备语言基础。

    孙寅
  • unity vr虚拟现实完全自学教程 pdf_ug80完全自学手册pdf

    VR全称为Virtual Really,即虚拟现实:由计算机或独立计算单元生成虚拟环境,体验者通过封闭式的头部显示器(简称为头显)观看这些数字内容,虚拟现实设备...

    全栈程序员站长
  • 书单丨游戏制作是门儿手艺,这5本书带你牢固基础

    本书是腾讯游戏研发团队的技术结晶,由10多名腾讯游戏资深技术专家撰写而成,整理了团队在自主游戏研发的道路上积累沉淀的技术方案,具有较强的通用性及时效性,内容涵盖...

    博文视点Broadview
  • 2022年Unity 面试题 |五萬字 二佰道| Unity面试题大全,面试题总结【全网最全,收藏一篇足够面试】

    本文将整理的面试题大致分为以下几个模块,方便针对性学习和背题! 由于大部分常用的面试题在网上基本上已经有比较标准的答案了,所以说面试题类的文章基本上大同小异。...

    呆呆敲代码的小Y
  • Unity优化技巧(中)

    使用Profile找到CPU占用最靠前的函数,从最高的开始依次分析优化。定位的方法有很多,Unity的Profile,UWA的性能测试工具,比较推荐的是使用XC...

    张曙光

扫码关注腾讯云开发者

领取腾讯云代金券