如何将Android设备中的图像正确保存到位图文件中?

时间:2019-05-23 14:04:24

标签: c# android xamarin .net-standard

我正在使用Xamarin.Android创建一个应用程序,该应用程序将图像从摄像机发送到Web API,并且必须在服务器端保存该图像。

我已经编写了服务器服务器端代码,并且在android应用程序中,我通过IPreviewCallback以字节数组的形式接收图像。

相机图片格式设置为: ImageFormatType.Rgb565

服务器上的图像保存方法:

            using (var bmp = new Bitmap(width, height, PixelFormat.Format16bppRgb565))
            {
                var rect = new Rectangle(0, 0, width, height);
                BitmapData bmpData = bmp.LockBits(rect, ImageLockMode.ReadWrite, PixelFormat.Format16bppRgb565);
                IntPtr ptr = bmpData.Scan0;

                Marshal.Copy(data, 0, ptr, data.Length);
                bmp.UnlockBits(bmpData);
                bmp.Save(filePath);
            }

这些操作的结果是,保存的位图的颜色与android模拟器中的图像不符:

Inout image

Result image

我尝试成功将YUV图像转换为JPEG,但是出于我的目的,我需要未压缩的位图。

如果您需要更多信息,请随时询问:)

0 个答案:

没有答案