⭐Unity 读取本地图片再区域裁剪

news2025/1/19 17:23:26

现在需求是将本地的图片读取之后再区域截图成新的图片

话不多说直接上代码

using UnityEngine;
using System.IO;

public class LocalRegionCapture : MonoBehaviour
{
    public string fullScreenImagePath = "Assets/SavedImages/fullScreenScreenshot.png";
    public string localRegionImagePath = "Assets/SavedImages/localRegionScreenshot.png";
    public UnityEngine.Rect localRegionRect = new UnityEngine.Rect(100, 100, 200, 200); // Adjust the region as needed

    private void Start()
    {
        CaptureLocalRegionAndSave();
    }

    private void CaptureLocalRegionAndSave()
    {
        // Load the full screen image
        Texture2D fullScreenTexture = LoadFullScreenImage();

        // Extract the local region from the full screen image
        Texture2D localRegionTexture = ExtractLocalRegion(fullScreenTexture, localRegionRect);

        // Save the local region image to file
        SaveTextureToFile(localRegionTexture, localRegionImagePath);

        // Clean up
        Destroy(fullScreenTexture);
        Destroy(localRegionTexture);
    }

    private Texture2D LoadFullScreenImage()
    {
        // Load the full screen image
        byte[] bytes = File.ReadAllBytes(fullScreenImagePath);
        Texture2D texture = new Texture2D(2, 2);
        texture.LoadImage(bytes);
        return texture;
    }

    private Texture2D ExtractLocalRegion(Texture2D fullScreenTexture, UnityEngine.Rect regionRect)
    {
        // Create a new texture for the local region
        Texture2D localRegionTexture = new Texture2D((int)regionRect.width, (int)regionRect.height, TextureFormat.RGB24, false);

        // Read pixels from the full screen image within the specified region
        localRegionTexture.SetPixels(fullScreenTexture.GetPixels((int)regionRect.x, (int)regionRect.y, (int)regionRect.width, (int)regionRect.height));
        localRegionTexture.Apply();

        return localRegionTexture;
    }

    private void SaveTextureToFile(Texture2D texture, string filePath)
    {
        byte[] bytes = texture.EncodeToPNG();
        File.WriteAllBytes(filePath, bytes);
        Debug.Log("Local region screenshot saved at: " + filePath);
    }
}

代码挂载后可根据需求调整裁剪位置和裁剪大小

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1330995.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C语言学习NO.9-指针(一)内存和地址,指针变量,指针变类型的意义,const修饰指针,指针运算,野指针,assret断言,指针的使用和传址调用

指针是什么? 指针理解的2个要点: 1.指针是内存中一个最小单元的编号,也就是地址; 2.平时口语中说的指针,通常指的是指针变量,是用来存放内存地址的变量。 总结:指针就是地址(变量的地…

玩转大数据21:基于FP-Growth算法的关联规则挖掘及实现

1.引言 关联规则挖掘是大数据领域中重要的数据分析任务之一,其可以帮助我们发现数据集中项目之间的关联关系。关联规则挖掘是指在交易数据或者其他数据集中,发现一些常见的关联项,如购物篮中经常一起出现的商品组合。关联规则挖掘的应用非常…

医学实验室检验科LIS信息系统源码

实验室信息管理是专为医院检验科设计的一套实验室信息管理系统,能将实验仪器与计算机组成网络,使病人样品登录、实验数据存取、报告审核、打印分发,实验数据统计分析等繁杂的操作过程实现了智能化、自动化和规范化管理。 实验室管理系统功能介…

初识Stable Diffusion

界面选项解读 这是在趋动云上部署的Stable Diffusion txt2img prompt (1)分割符号:使用逗号 , 用于分割词缀,且有一定权重排序功能,逗号前权重高,逗号后权重低 (2)建议的通用范式…

LabVIEW的六轴工业机器人运动控制系统

LabVIEW开发六轴工业机器人运动控制系统 本项目开发了一个高效的工业机器人控制系统,重点关注于运动学算法和轨迹规划算法的实现和测试。LabVIEW作为一个关键技术,在项目中扮演了核心角色。 系统研究与算法开发:首先,项目围绕机…

记一次生产慢sql索引优化及思考

一 问题重现 夜黑风高的某一晚,突然收到一条运营后台数据库慢sql的报警,耗时竟然达到了60s。 看了一下,还好不是很频繁,内心会更加从容排查问题,应该是特定条件下没有走到索引导致,如果频繁出现慢查询&…

ubuntu22.04+ROS2推荐匹配的gazebo版本

放大以后看到: 可以看到ros2推荐使用版本是humble-----匹配的是Ubuntu22.04LTS -------匹配gazebo Harmonic

Windows漏洞利用开发——利用SEH绕过GS保护

实验6 Windows漏洞利用开发 6.1实验名称 Windows漏洞利用开发 6.2实验目的 学习windows漏洞利用开发,使用kali linux相关工具对windows内目标程序进行漏洞利用 6.3实验步骤及内容 第二阶段:利用SEH绕过GS保护 了解GS编译选项,SHE异常处…

【多模态对话】《颠覆性创新:多模态对话与精准区域分割 - VPGTrans NExT-Chat》学习笔记

【OpenMMLab社区开放麦讲座】《颠覆性创新:多模态对话与精准区域分割 - VPGTrans & NExT-Chat》 1 VPGTrans 1.1 研究问题 1.1.1 模态对齐预训练开销很大:训练时间长 解决方案:迁移已有的VPG(比如BLIP-2 OPT 27B上的VPG) 1.2 训练技巧…

01背包详解,状态设计,滚动数组优化,通用问题求解

文章目录 0/1背包前言一、0/1背包的状态设计1、状态设计2、状态转移方程3、初始状态4、代码实现5、滚动数组优化二维优化为两个一维二维优化为一个一维,倒序递推 二、0/1背包的通用问题求最大值求最小值求方案数 0/1背包 前言 0/1包问题,作为动态规划问…

ESP32运行MicroPython——环境搭建

1、准备工作 硬件:ESP32-DevKitC V4 开发板、USB串口线 软件: flash_download_tool_3.9.5(乐鑫烧录工具)、官方下载地址 CP210x(USB驱动程序)、官方下载地址 ESP32_GENERIC-20231005-v1.21.0.bin&#xff…

将html转化成图片

如何将指定html内容转化成图片保存?这个问题很值得深思,实际应用中也很有价值。最直接的想法就是使用canvas,熟悉canvas的同学可以尝试一下。这里不做太多的说明,本文采用html2canvas库来实现。 html2canvas库的使用非常简单&…

JavaWeb笔记之SVN

一、版本控制 软件开发过程中 变更的管理; 每天的新内容;需要记录一下; 版本分支;整合到一起; 主要的功能对于文件变更的追踪; 多人协同开发的情况下,更好的管理我们的软件。 大型的项目;一个团队来进行开发; 1: 代码的整合 2: 代…

GPT2代码运行,个人文本生成助手,不依赖OpenAI API调用

0.前言: 感觉GPT很好玩,所以想要有个自己搭建GPT的写法,不依赖于OpenAI,需要翻墙太麻烦了,近日日本已经结合GPT4和机器,可以让他吓人,做出丰富的表情,如果自己训练的话,会塑造出什么样的机器人尚未可知…抱着好奇的心态,去github openai下载了个gpt2的模型来玩玩(其中遇到了许多…

arm汇编-补充-画图记忆 LDM/STM系列指令

说明 原始文章系列 https://azeria-labs.com/writing-arm-assembly-part-1/ 翻译-进作者的专栏可以翻到所有翻译 系列:https://zhuanlan.zhihu.com/p/109057983 系列:https://www.anquanke.com/post/id/86383 0x00 调试环境 使用arm架构的系统&#…

❀My学习Linux命令小记录之iperf❀

❀My学习Linux命令小记录之iperf❀ 目录 ❀My学习Linux命令小记录之iperf❀ ①功能说明: ②安装iperf: ③iperf的使用及参数介绍: ④注意事项: ⑤实例: iperf测试udp iperf测试tcp ①功能说明: i…

管理 Jenkins 详细指南

目录 系统配置 安全 状态信息 故障 排除 工具和操作 系统配置 系统,配置全局设置和路径,端口更改,下载地址等。 工具,配置工具、其位置和自动安装程序。 插件,添加、删除、禁用或启用可以扩展 Jenkins 功能的插…

Logback简介与配置详解

在开发和维护Spring Boot应用程序时,一个强大而灵活的日志框架是至关重要的。Spring Boot默认集成了Logback,一个高性能的Java日志框架。本文将介绍如何配置Logback以满足你的日志记录需求。 Logback简介 官方网址:https://logback.qos.ch/ …

【JMeter】JMeter控制RPS

一、前言 ​ RPS (Request Per Second)一般用来衡量服务端的吞吐量,相比于并发模式,更适合用来摸底服务端的性能。我们可以通过使用 JMeter 的常数吞吐量定时器来限制每个线程的RPS。对于RPS,我们可以把他理解为我们的TPS,我们就不…

2023年12月GESP Python三、四级编程题真题解析

三、2023年12月GESP Python三级编程题 【三级编程题1】 【试题名称】&#xff1a;小猫分鱼 【问题描述】 海滩上有一堆鱼&#xff0c;N只小猫来分。第一只小猫把这堆鱼平均分为N份&#xff0c;多了i<N条鱼&#xff0c;这只小猫把多的i条鱼扔入海中&#xff0c;拿走了一份…