0
KBitmap.Bytes는 Marshal에 대한 제안 사항입니다. 바이트 배열을 SKBitmap에 복사 하시겠습니까? 아래 코드를 사용하고 있지만 작동하지 않습니다.SkiaSharp에서 바이트 배열을 SKBitmap으로 변환하는 방법은 무엇입니까?
코드 스 니펫 : 당신은 항상 비트 맵 관리되지 않는/기본 메모리의 삶과 바이트 배열이 관리되는 코드에서와 같이 일부 마샬링을해야 할 것
SKBitmap bitmap = new SKBitmap((int)Width, (int)Height);
bitmap.LockPixels();
byte[] array = new byte[bitmap.RowBytes * bitmap.Height];
for (int i = 0; i < pixelArray.Length; i++)
{
SKColor color = new SKColor((uint)pixelArray[i]);
int num = i % (int)Width;
int num2 = i/(int)Width;
array[bitmap.RowBytes * num2 + 4 * num] = color.Blue;
array[bitmap.RowBytes * num2 + 4 * num + 1] = color.Green;
array[bitmap.RowBytes * num2 + 4 * num + 2] = color.Red;
array[bitmap.RowBytes * num2 + 4 * num + 3] = color.Alpha;
}
Marshal.Copy(array, 0, bitmap.Handle, array.Length);
bitmap.UnlockPixels();