Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在c#中解码16位单通道png(统一)_C#_Unity3d_Compression_Png_Decode - Fatal编程技术网

在c#中解码16位单通道png(统一)

在c#中解码16位单通道png(统一),c#,unity3d,compression,png,decode,C#,Unity3d,Compression,Png,Decode,我已经被困了一个星期,试图在Unity中解码16位1通道png。图像是字节数组的形式,需要对其进行解码才能访问各个像素值。该图像是深度图像,其中每个像素包含深度度量 我不能使用Unity的Texture2d.loadImage(),因为出于某种原因,它会自动将格式更改为RGBA24。我也看过opencv插件,但它不是免费的,因此不是一个选项。我既不能使用.NET framework中的System.Windows.Media.Imaging.PngBitmapDecoder,因为我的平台是Ubu

我已经被困了一个星期,试图在Unity中解码16位1通道png。图像是字节数组的形式,需要对其进行解码才能访问各个像素值。该图像是深度图像,其中每个像素包含深度度量

我不能使用Unity的Texture2d.loadImage(),因为出于某种原因,它会自动将格式更改为RGBA24。我也看过opencv插件,但它不是免费的,因此不是一个选项。我既不能使用.NET framework中的System.Windows.Media.Imaging.PngBitmapDecoder,因为我的平台是Ubuntu

我没有.NETIDE,我使用统一开发的MonoDevelop


希望你们能帮忙!:)

您可以使用ImageMagick或GraphicsMagick将图像从PNG转换为PGM,然后从那里开始。PGM易于使用,只包含一个简单的标题,标题为“P2 width height maxval”,后跟从左上到右下的像素顺序:

# Make a 4x4 test image with 16-bit grayscale pixels
im7q16magick gradient:[4x4] -depth 16 g16.png

# Convert it to PGM format
im7q16magick g16.png -compress none g16.pgm

# Print it out
cat g16.pgm

P2
4 4
65535
65535 65535 65535 65535 
49151 49151 49151 49151 
32768 32768 32768 32768 
16384 16384 16384 16384 

问题是png图像有12个字节的垃圾,我必须在它们被移除之前移除它们。完成此操作后,Texture2d.loadImage()工作正常。所讨论的图像来自罗斯,作为通过统一中的罗斯布里奇利布传递的压缩图像信息。谢谢您的帮助:)

您可以用