直接上代码

    /// <summary>
/// 修复图片导入时白边问题
/// </summary>
/// <param name="texture"></param>
public static void FixTransparency(this Texture2D texture)
{
Color32[] pixels = texture.GetPixels32();
int w = texture.width;
int h = texture.height; for (int y = 0; y < h; y++) {
for (int x = 0; x < w; x++) {
int idx = y * w + x;
Color32 pixel = pixels[idx];
if (pixel.a == 0) {
bool done = false;
if (!done && x > 0) done = TryAdjacent(ref pixel, pixels[idx - 1]); // Left pixel
if (!done && x < w-1) done = TryAdjacent(ref pixel, pixels[idx + 1]); // Right pixel
if (!done && y > 0) done = TryAdjacent(ref pixel, pixels[idx - w]); // Top pixel
if (!done && y < h-1) done = TryAdjacent(ref pixel, pixels[idx + w]); // Bottom pixel
pixels[idx] = pixel;
}
}
} texture.SetPixels32(pixels);
texture.Apply();
} private static bool TryAdjacent(ref Color32 pixel, Color32 adjacent)
{
if (adjacent.a == 0) return false; pixel.r = adjacent.r;
pixel.g = adjacent.g;
pixel.b = adjacent.b;
return true;
}

在Unity Answers中发现了一个大牛写的png文件会有白边的原因分析,Messy Alpha Problem,大概是因为PhotoShop中,会把100% Transparent的地方默认颜色值设为白色,这样会导致在Runtime时,做图片interpolation运算时候,由于这样100%Transparent点的干扰使用会出现白边的情况,大牛提出的解决方法是,在PS中,利用插件为这些100%Transparent点,填充上相邻像素点的颜色,而由于我们的图片资源太多了,让美术一个一个改图片也不现实,所以参考了一段Google上的代码,通过代码来完成了PS中插线的工作流程.PNG transparency has white border/halo,在这个问题中有这段代码.至此问题基本解决,但是貌似性能消耗太多

参考链接:https://www.cnblogs.com/luckisnow/p/4642467.html

Unity使用LoadImage 读取byte[]图片时,会出现白边问题的更多相关文章

  1. 图片_ _Android有效解决加载大图片时内存溢出的问题 2

    Android有效解决加载大图片时内存溢出的问题 博客分类: Android Android游戏虚拟机算法JNI 尽量不要使用setImageBitmap或 setImageResource或 Bit ...

  2. C#从SQL server数据库中读取l图片和存入图片

    原文:C#从SQL server数据库中读取l图片和存入图片 本实例主要介绍如何将图片存入数据库.将图片存入数据库,首先要在数据库中建立一张表,将存储图片的字段类型设为Image类型,用FileStr ...

  3. FileReader:读取本地图片文件并显示

    最近忙得比狗还惨,导致长时间没能更新文章,真心对不住啊.抽空整理了下关于在页面上读取和显示本地图片的实例文章,本文通过实例讲解如何使用支持FileReader浏览器的用户将能够通过一个file inp ...

  4. 关于生成缩略图及水印图片时出现GDI+中发生一般性错误解决方法

    System.Drawing.Image OldImage = null; oldImage = System.Drawing.Image.FromFile(ImageUrl); 使用该方法读取图片时 ...

  5. ASP.NET输出PNG图片时出现GDI+一般性错误的解决方法

    偶原来的用ASP.NET生成验证码图片时用的是JPG格式,今天想把它改成PNG格式的,结果就出现GDI+一般性错误,查了N久资料,才发现解决的办法,对分享此解决办法的网友深表感谢 Response.C ...

  6. Android开发中如何解决加载大图片时内存溢出的问题

    Android开发中如何解决加载大图片时内存溢出的问题    在Android开发过程中,我们经常会遇到加载的图片过大导致内存溢出的问题,其实类似这样的问题已经屡见不鲜了,下面将一些好的解决方案分享给 ...

  7. 网页中通过js修改img的src属性刷新图片时,图片缓存问题现象表述及问题解决【ps:引用大神案例http://blog.csdn.net/goodleiwei/article/details/50737548】

    问题:上传一张图片,通过js更新src属性刷新图片使其即时显示时, 当img的src当前的url与上次地址无变化时(只更改图片,名称不变,不同图片名称相同)图片不变化(仍显示原来的图片) 但通过fir ...

  8. java读取网页图片路径并下载到本地

    java读取网页图片路径并下载到本地 最近公司需要爬取一些网页上的数据,自己就简单的写了一个demo,其中有一些数据是图片,需要下载下来到本地并且 将图片的路径保存到数据库,示例代码如下: packa ...

  9. 使用Thumbnailator处理gif图片时遇到java.lang.ArrayIndexOutOfBoundsException: 4096异常处理

    环境 1.7.0_80 在使用Thumbnailator处理gif图片时,遇到问题: Exception in thread "main" java.lang.ArrayIndex ...

  10. 使用Volley缓存图片时,缓存无效的原因。

    使用Volley的ImageLoader异步获取并缓存图片时,发现有的网络图片已经缓存了,可是断网后却读不出来. ImageLoader的用法: RequestQueue requestQueue = ...

随机推荐

  1. C# 中 WebSocket 与 SignalR:实时通信的两种选择

    在现代 Web 应用中,实时通信变得越来越重要.无论是聊天应用.在线游戏.股票行情推送还是协作编辑工具,都需要服务器能够主动向客户端推送数据.在 .NET 生态系统中,WebSocket 和 Sign ...

  2. RNN - 梯度消失与爆炸

    Last we learned Recurrent Neural Netwoks (RNN) and why they'er great for Language Modeling (LM) 就之前整 ...

  3. 进程间通信-POSIX 消息队列

    POSIX 消息队列 POSIX 消息队列可以认为是一个消息链表.进程(线程)可以往里写消息,也可以从里面取出消息.可以在不相关的进程之间发送和接收数据. 创建(打开)消息队列-mq_open()函数 ...

  4. 【FAQ】HarmonyOS SDK 闭源开放能力 —Vision Kit (3)

    1.问题描述: 通过CardRecognition识别身份证拍照拿到的照片地址,使用该方法获取不到图片文件,请问如何解决? 解决方案: //卡证识别实现页,文件名为CardDemoPage,需被引入至 ...

  5. dify+MCP多应用,构建灵活的AI应用生态系统

    一.概述 前面几篇文章写很多MCP应用,基本上一个dify工作流使用一个MCP应用. 那么一个dify工作流,同时使用多个MCP应用,是否可以呢?答案是可以的. 先来看一下效果图 说明: 这里使用了问 ...

  6. IntelliJ IDEA 源文件提示 cannot resolve method 或者 Cannot find declaration to go to

    问题描述:IntelliJ IDEA 在源文件中提示 Cannot resolve method,但是项目可以正常编译运行,提示异常的类明明存在且没有任何异常.尝试使用ctrl+鼠标左键进入该类时,提 ...

  7. springboot 事件监听@EventListener注解用法

    前言 关于@EventListener注解,百度了一下,网上的教程很多都是继承这个,实现那个的,其实根本用不着这么麻烦,所以就写了此文,如文章所讲有误,还请谅解 更多详细用法请百度一下~ 作用 关于事 ...

  8. Shell常用指令操作

    sed命令 替换目录下所有文件的某个字符串 sed -i 's/test/yuhaohao/g' `grep -lr yuhaohao *` export 函数到外部使用 functon test() ...

  9. 数栈干货放送!babel-plugin-import最全源码详解

    ​ 本文将带领大家解析babel-plugin-import 实现按需加载的完整流程,解开业界所认可 babel 插件的面纱. 首先供上babel-plugin-import插件 一.初见萌芽 首先 ...

  10. Web前端入门第 68 问:JavaScript 事件循环机制中的微任务与宏任务

    JS 是单线程语言.这句话对不对? 按照目前的情况来看,JS 自从支持了 Web Worker 之后,就不再是单线程语言了,但 Worker 的工作线程与主线程有区别,在 Worker 的工作线程中无 ...