我正在使用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模拟器中的图像不符:
我尝试成功将YUV图像转换为JPEG,但是出于我的目的,我需要未压缩的位图。
如果您需要更多信息,请随时询问:)