- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我想问一下如何从文件加载 Texture2D 图像(我不想使用 XNA 的内容管道)同时保持图像的透明度,因为我想在我的游戏中蒙皮。
我的代码:
使用 _cursor.Texture = _helper.LoadPicture("skin\\cursor.png"); 初始化纹理
使用 spriteBatch.Draw(Texture, rectangle, Color.BlanchedAlmond); 绘制纹理
public Texture2D LoadPicture(string filename) {
FileStream setStream = File.Open(filename, FileMode.Open);
StreamReader reader = new StreamReader(setStream);
Texture2D NewTexture = Texture2D.FromStream(_graphicsDevice, setStream);
setStream.Dispose();
return NewTexture;
}
屏幕截图 1(结果):http://prntscr.com/cxjzwu
屏幕截图 2(预期):http://prntscr.com/cxk065
最佳答案
您也可以从加载中处理它,因此您可以将 BlendState 保留为 AlphaBlend。
这是我用来从文件加载纹理的函数:
private Texture2D PremultiplyTexture(String FilePath, GraphicsDevice device)
{
Texture2D texture;
FileStream titleStream = File.OpenRead(FilePath);
texture = Texture2D.FromStream(device, titleStream);
titleStream.Close();
Color[] buffer = new Color[texture.Width * texture.Height];
texture.GetData(buffer);
for (int i = 0; i < buffer.Length; i++)
buffer[i] = Color.FromNonPremultiplied(buffer[i].R, buffer[i].G, buffer[i].B, buffer[i].A);
texture.SetData(buffer);
return texture;
}
关于c# - 如何使用 Texture2D.FromStream 加载透明 PNG,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40194266/
我有一些代码可以做到 MemoryStream ms = new MemoryStream(); ... return Image.FromStream(ms); 它以非常不拘一格的方式失败,因为 I
我有这个示例代码: Flux range = Flux.range(0, 10); Flux longs = Flux.fromStream(new Random().longs(100, 500).
我正在尝试从 MemoryStream 获取图像。当在 MemoryStream 中我有一个大的 JPG 图像(在步骤中转换为位图后,大小从 38MB 增加到超过 1.3GB,评论为有问题)我得到一个
我想加载XNA SoundEffect。 我尝试使用: SoundEffect.FromStream(TitleContainer.OpenStream(XXX)); XXX是地址,但它需要内容中的地
我正在尝试从字节数组创建图像。字节数组由指纹扫描仪创建(参见 CaptureFrame 方法)。 fwidth 为 256,fheight 为 255。 当我运行下面的代码时,我得到 System.A
我有以下代码: var request = (HttpWebRequest)HttpWebRequest.Create(url); var response = request.GetResponse
我知道有类似的帖子,但我的问题没有得到任何答案,因此发布了这个。 我有一个方法可以从图像路径中检索并返回图像。下面是我使用的代码片段。这在某些情况下会失败,因为图像在返回后会丢失。 public st
我正在尝试使用 Image 类的方法 FromStream 来设置使用网络流的 tcp 连接接收的图像。这里有两个方面的代码: 服务器: TcpListener server = new TcpLis
我在 VS 2010、.Net 4.0 中工作。在 Windows 窗体应用程序中,这是可以的: Image img = Image.FromStream(imagePart.GetStream())
我正在创建一个远程桌面程序,因此我开发了一个类,用于拍摄客户端计算机的快照并将每个图像以字节数组格式发送到服务器。然后服务器读取这些字节并将流转换为 System.Drawing.Image 类型。但
我在 C# 中这样做: Image image = Image.FromStream(fullSizeAppLogo.FileStream); FileStream 属性在单独的类中定义为: publ
我有一些使用 SoundEffect.FromStream 开始播放声音的 Windows Phone 7 代码。我正在使用它而不是普通的媒体对象,因为我需要在一页上显示多个音频剪辑。 但是,基于某些
我担心这个重载中的第三个参数,validateImageData。文档对此没有太多解释,只说它会导致图像数据被验证但没有详细说明,到底做了什么来验证图像数据? public static Image
我有以下代码: Image tmpimg = null; HttpWebRequest httpWebRequest = (HttpWebRequest)HttpWebRequest.Create(u
我正在尝试从数据库中获取 blob,但有时会收到“无效参数”错误 在这一行 System.Drawing.Image objimg = System.Drawing.Image.FromStream(
我的内容页面上有一个 Image 元素。我想在我的 ContentPage 的构造函数中将 MemoryStream 源分配给它。这在 Samsung Galaxy A3 (Android 5.0.2
我试图在 C# 中找到一种方法,无需使用 Image.FromStream 即可将字节数组转换为 Image。 我想要一个可以在 Windows 和 Linux 中使用的转换例程,我正在使用 Mono
我想问一下如何从文件加载 Texture2D 图像(我不想使用 XNA 的内容管道)同时保持图像的透明度,因为我想在我的游戏中蒙皮。 我的代码: 使用 _cursor.Texture = _helpe
我有一个应用程序,它处理图像并调整图像大小,在长时间的迭代过程中偶尔会出现 OutOfMemoryException。 我将我的图像作为文件流存储在数据库中,在处理过程中我需要将它们保存到一个临时的物
我有一个服务帐户,我将其 Json 文件下载到我的 android studio 的“assets”文件夹中。然后我从谷歌自己的文档中复制/粘贴代码并得到空值。 我尝试了各种方法来读取我的json文件
我是一名优秀的程序员,十分优秀!