Unity3D随意截图并保存
http://blog.csdn.net/awnuxcvbn/article/details/9199245
效果
代码
- <pre name="code" class="csharp">using UnityEngine;
- using System.Collections;
- using System.IO;
- public class CropPicture : MonoBehaviour
- {
- string localPath = "http://192.168.1.100:8080/picture/15.jpg";
- Texture2D image;
- Texture2D cutImage;
- WWW www;
- Rect rect;
- float time;
- Vector2 pos1;
- Vector2 pos2;
- // Use this for initialization
- void Start()
- {
- StartCoroutine(LoadImage());
- }
- // Update is called once per frame
- void Update()
- {
- //点击鼠标左键,记录第一个位置
- if (Input.GetMouseButtonDown(0))
- {
- pos1 = Input.mousePosition;
- time = Time.time;
- if (time > 1f)
- {
- Debug.Log(pos1);
- }
- }
- //放开左键记录第二个位置
- if (Input.GetMouseButtonUp(0))
- {
- pos2 = Input.mousePosition;
- Debug.Log(pos2);
- StartCoroutine(CutImage());
- time = 0;
- }
- }
- void OnGUI()
- {
- //当下载完成
- if (www.isDone)
- {
- GUI.DrawTexture(new Rect(0, 0, 600, 904), image);
- }
- GUI.Button(new Rect(0, 0, 100, 50), "W" + Screen.width + "H" + Screen.height);
- if (pos1 != null)
- {
- GUI.Button(new Rect(0, 50, 150, 50), pos1.ToString());
- }
- if (pos2 != null)
- {
- GUI.Button(new Rect(0, 100, 150, 50), pos2.ToString());
- }
- if (cutImage != null)
- {
- GUI.Button(new Rect(0, 150, 150, 50), "image W" + cutImage.width + "H" + cutImage.height);
- }
- if (rect != null)
- {
- GUI.Button(new Rect(0, 200, 250, 50), rect.ToString());
- }
- }
- //下载图片
- IEnumerator LoadImage()
- {
- www = new WWW(localPath);
- yield return www;
- image = www.texture;
- if (www.error != null)
- {
- Debug.Log(www.error);
- }
- }
- //截图
- IEnumerator CutImage()
- {
- //图片大小
- cutImage = new Texture2D((int)(pos2.x - pos1.x), (int)(pos1.y - pos2.y), TextureFormat.RGB24, true);
- //坐标左下角为0
- rect = new Rect((int)pos1.x, Screen.height - (int)(Screen.height - pos2.y), (int)(pos2.x - pos1.x), (int)(pos1.y - pos2.y));
- yield return new WaitForEndOfFrame();
- cutImage.ReadPixels(rect, 0, 0, true);
- cutImage.Apply();
- yield return cutImage;
- byte[] byt = cutImage.EncodeToPNG();
- //保存截图
- File.WriteAllBytes(Application.streamingAssetsPath + "/CutImage.png", byt);
- }
- }
Unity3D随意截图并保存的更多相关文章
- Unity3d之截图方法
http://blog.csdn.net/highning0007/article/details/37991787 Unity3d之截图方法 分类: Unity3D2013-11-28 17:13 ...
- [Android] 拍照、截图、保存并显示在ImageView控件中
近期在做Android的项目,当中部分涉及到图像处理的内容.这里先讲述怎样调用Camera应用程序进行拍照,并截图和保存显示在ImageView控件中以及遇到的困难和解决方法. PS:作者购买 ...
- opencv 截图并保存
opencv 截图并保存(转载) 代码功能:选择图像中矩形区,按S键截图并保存,Q键退出. #include<opencv2/opencv.hpp> #include<iostrea ...
- html2canvas插件对整个网页或者网页某一部分截图并保存为图片
html2canvas能够实现在用户浏览器端直接对整个或部分页面进行截屏.这个脚本将当前页面渲染成一个canvas图片,通过读取DOM并将不同的样式应用到这些元素上实现.它不需要来自服务器任何渲染,整 ...
- 对html进行截图并保存为本地图片
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- Python+Selenium练习篇之21-如何截图并保存
本文介绍如何利用Selenium的方法进行截图,在测试过程中,是有必要截图,特别是遇到错误的时候进行截图.在selenium for python中主要有三个截图方法,我们挑选其中最常用的一种. ge ...
- Python3.X Selenium 自动化测试中如何截图并保存成功
在selenium for python中主要有三个截图方法,我们挑选其中最常用的一种. 挑最常用的:get_screenshot_as_file() 相关代码如下:(下面的代码可直接复制) # co ...
- selenium 页面截图并保存
import java.io.File; import java.io.IOException; import org.apache.commons.io.FileUtils; import org. ...
- 利用HTML5的Video进行视频截图并保存到本地
<!doctype html> <html> <head> <meta charset="utf-8"> <title> ...
随机推荐
- Week Four
2018.12.18 1.[USACO Platinum C] 2.[Gym 102028H] 3.[BZOJ 2750] 4.[BZOJ 3238] 5.[BZOJ 4310] 6.[BZOJ 38 ...
- Java解释执行和编译执行
以前有句话说:“Java是解释执行的 ” .现在看来确实不是很准确,至于原因,在此简略解释: 首先,我们先解释一下在Java中解释执行和编译执行的区别. 解释执行:将编译好的字节码一行一行地翻译为机器 ...
- Educational Codeforces Round 11 A. Co-prime Array 水题
A. Co-prime Array 题目连接: http://www.codeforces.com/contest/660/problem/A Description You are given an ...
- UESTC 2015dp专题 A 男神的礼物 区间dp
男神的礼物 Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.uestc.edu.cn/#/contest/show/65 Descri ...
- 浅谈JVM-类加载器结构与双亲委派机制
一.类加载器结构 1.引导类加载器(bootstrap class loader) 它用来加载Java的核心库(JAVA_HOME/jre/lib/rt.jar),是用原声代码来实现的,并不继承自ja ...
- 解决新版本webpack vue-cli生成文件没有dev.server.js问题
新版本webpack生成的dev.server.js 在webpack.dev.conf.js中 webpack.dev.conf.js const axios = require('axios') ...
- 如何终止JQUERY的$.AJAX请求
最近遇到,如果用户频繁点击ajax请求,有两个问题: 1,如果连续点击了5个ajax请求,前4个其实是无效的,趁早结束节省资源. 2,更严重的问题是:最后一个发送的请求,响应未必是最后一个,有可能造成 ...
- 学习笔记:Tab Bar 控件使用详解
注意这里是:Tab Bar 不是Tab Bar Controller. Tab bar是继承UIView,所以可以添加到ViewController里.是View就可以add到另一个View上去.Ta ...
- PHP session过期机制和配置
问题:使用PHP session时会遇到明明超过了session过期时间,但session依然完好无损的活着,让人头大. 其实仔细看一下php.ini关于PHP session回收机制就一目了然了. ...
- 移动端 关于 键盘将input 框 顶上去的解决思路---个人见解
在移动端,经常会遇到input获得焦点时候弹出的虚拟键盘将整体页面布局打乱的情况. 比如说是这种 输入框未获得焦点键盘未抬起的时候: 输入框获得焦点键盘抬起的时候 这种情况下,不管是上面的textar ...