项目分享:https://github.com/Claymoreno1/RenderTexture

添加了gamma矫正和裁剪功能,添加当前图片分辨率的显示。
关于裁剪选择时的框线,我是用的LineRenderer,然后给它一个material,添加一个由色块组成的纹理
方便采样,这样框线会有颜色变化,不至于太单调。
用户一共有四种拖拽方式,所以我们还需要根据用户的推拽方式判断裁剪的坐标
首先是Line的实现部分
if (Input.GetMouseButtonDown(0))
{
linerd.SetPosition(0, mospos = Input.mousePosition);
Gamevars.tailoring = true;
linerd.SetWidth(1.6f, 1.6f);
}
linerd.SetPosition(1, new Vector2(Input.mousePosition.x, mospos.y));
linerd.SetPosition(2, new Vector2(Input.mousePosition.x, Input.mousePosition.y));
linerd.SetPosition(3, new Vector2(mospos.x, Input.mousePosition.y));
linerd.SetPosition(4, mospos);
if (Gamevars.tailoring && Input.GetMouseButtonUp(0))
{
if (true)
{
Vector2 sizedelta = new Vector2(Gamevars.imagewidth, Gamevars.imageheight) * Gamevars.size;
Vector2 originpos = new Vector2(image.transform.position.x, image.transform.position.y - sizedelta.y);
Gamevars.xy[0, 0] = (mospos.x - originpos.x)/sizedelta.x;
Gamevars.xy[0, 1] = (mospos.y - originpos.y)/sizedelta.y;
Gamevars.xy[1, 0] = (Input.mousePosition.x - originpos.x) / sizedelta.x;
Gamevars.xy[

本文分享了一个使用Unity制作的简易图像处理软件项目,包括gamma矫正和裁剪功能。通过LineRenderer创建裁剪框,并利用Gamevars类协调程序运行。裁剪功能的实现涉及特殊shader,用户可进行四种方式的拖拽操作。项目源代码已开源,作者计划可能添加更多功能或在11月28日前结束开发。
最低0.47元/天 解锁文章
1761

被折叠的 条评论
为什么被折叠?



