Unity 您所在的位置:网站首页 两张图片怎么覆盖拼成一张 Unity

Unity

2024-06-14 00:54| 来源: 网络整理| 查看: 265

在做图片分享时,往往需要对图片加上水印或其他标签图片,这个时候就要考虑如何对多张图片进行叠加合成为一张图片。

其实一张图片就是一组单色像素组成的像素矩阵

要对两张图片进行叠加,只需要将背景图片中对应的像素颜色,替换成另一张图片的像素颜色就行了。

下面以截屏并添加二维码标签为例

public void CaptureScreenShot() { StartCoroutine(CaptureCoroutine()); } private IEnumerator CaptureCoroutine() { yield return new WaitForEndOfFrame(); //截取当前屏幕 Rect rect = new Rect(0, 0, Screen.width, Screen.height); Texture2D texture = new Texture2D((int)rect.width, (int)rect.height, TextureFormat.RGB24, false); texture.ReadPixels(rect, 0, 0); texture.Apply(); //将另一张二维码图片的像素替换到截屏图片上(位置右上角) Texture2D textureQrCode = Resources.Load("Texture/qrcode"); for (int x = 0; x < textureQrCode.width; x++) { for (int y = 0; y < textureQrCode.height; y++) { texture.SetPixel(texture.width - x, texture.height - y, textureQrCode.GetPixel(x, y)); } } texture.Apply(); //保存图片到本地 File.WriteAllBytes(Application.streamingAssetsPath+"/Capture.png",texture.EncodeToPNG()); }

这里主要使用Texture2Dd的SetPixel和GetPixel方法。SetPixel(int,int,Color)前两个参数为贴图像素的位置(x,y),第三个参数为像素颜色值。

在这里插入图片描述 、这里二维码图片和截屏图片叠加合成为了一张图片

需要注意的是,unity默认导入的图片可能为sprite类型,如果我们要操作texture类型的图片,需要在图片的ImportSettings中将TextureType设置为Default并勾选上Read/WriteEnable选项。 在这里插入图片描述



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

      专题文章
        CopyRight 2018-2019 实验室设备网 版权所有