Microsoft의 OCR 라이브러리에서 작업 중이며 BitmapImage를 픽셀 배열로 변환하는 데 문제가 있습니다.Microsoft OCR 용 비트 맵을 픽셀 배열로 변환 C#
Windows Phone 8 용으로이 응용 프로그램을 만들고 WriteableBitmap.PixelBuffer.ToArray()가 옵션이 아니므로 정상적인 BitmapImage를 OCR로 공급할 수 있도록 바이트 맵으로 변경하는 정적 함수가 있습니다. 엔진.
글쎄, 내가 응용 프로그램에서 피드를 먹을 때마다. 여기 뭐가 잘못 됐니?
여기 여기에 응용 프로그램이 충돌을 일으키는 OCR 방식의 코드 조각 비트 맵 변환
public static class ByteArrayChange
{
public static byte[] ConvertToBytes(this BitmapImage bitmapImage)
{
byte[] data = null;
using (MemoryStream stream = new MemoryStream())
{
WriteableBitmap wBitmap = new WriteableBitmap(bitmapImage);
wBitmap.SaveJpeg(stream, wBitmap.PixelWidth, wBitmap.PixelHeight, 0, 100);
stream.Seek(0, SeekOrigin.Begin);
data = stream.GetBuffer();
}
return data;
}
}
내 정적 클래스입니다.
byte[] pa = ByteArrayChange.ConvertToBytes(bitmap);
//Here Is he problem
var ocrResult = await ocrEngine.RecognizeAsync((uint)bitmap.PixelHeight, (uint)bitmap.PixelWidth, pa);
내가 뭘 잘못하고 있니? 감사합니다.
['RecognizeAsync'] (http://msdn.microsoft.com/en-us/library/windowspreview.media.ocr.ocrengine.recognizeasync.aspx)는 "BGRA8 형식의 이미지 바이트를 사용합니다. " JPG 형식의 바이트 배열을 전달하고 있습니다. – dbc
'WriteableBitmap'은 ['Pixels']을 가지고 있습니다. (http://msdn.microsoft.com/en-us/library/windows/apps/system.windows.media.imaging.writeablebitmap.pixels%28v=vs.105% 29.aspx) 속성. 너가 원하는게 그거야? – dbc
Dbc, BGRA8 형식으로 변환하려면 어떻게해야합니까? Pixable이 WP8 프레임 워크에서 같은 것이 아니라면 WriteableBitmap에 대해 PixelBuffer 속성이 필요합니다. – user2536897