【发布时间】:2016-10-26 10:12:11
【问题描述】:
我看到很多程序员想要将内容转换为位图,但我无法找到适合相反问题的解决方案。
我正在将 AForge.net 与 Unity 结合使用,我正在尝试通过将处理后的图像应用到多维数据集来对其进行测试。
我当前的代码如下所示:
using UnityEngine;
using System.Collections;
using System.Drawing;
using AForge;
using AForge.Imaging;
using AForge.Imaging.Filters;
public class Test : MonoBehaviour {
// Use this for initialization
public Renderer rnd;
public Bitmap grayImage;
public Bitmap image;
public UnmanagedImage final;
public byte[] test;
Texture tx;
void Start () {
image = AForge.Imaging.Image.FromFile("rip.jpg");
Grayscale gs = new Grayscale (0.2125, 0.7154, 0.0721);
grayImage = gs.Apply(image);
final = UnmanagedImage.FromManagedImage(grayImage);
rnd = GetComponent<Renderer>();
rnd.enabled = true;
}
// Update is called once per frame
void Update () {
rnd.material.mainTexture = final;
}
}
我在rnd.material.mainTexture = final; 行中收到以下错误:
Cannot implicitly convert type 'AForge.Imaging.UnmanagedImage' to 'UnityEngine.Texture'
我不清楚是否需要将托管转换为非托管。
【问题讨论】:
-
从
bmp转换为纹理?但是您的代码中有jpg而不是bmp -
@Programmer 图像变成bmp之后 grayImage = gs.Apply(image);行
-
您说要从 bmp 转换,但您正在加载 jpg 文件
FromFile("rip.jpg");。为什么不试试bmp?最重要的问题是 bmp 数据的来源是什么?从文件、互联网(WWW 或 UnityWebRequest)还是字节? -
Aforge.NET(我没试过这个)应该有一个
TextureTools.FromBitmap方法:aforgenet.com/framework/docs/html/… -
我有一个个人图像,它是 JPG > 我将其转换为 BMP 以便能够应用 AForges 方法(在这种情况下使其成为灰度) > 接下来我希望能够将其用作纹理直接来自代码。