public unsafe void Access(IImage.AccessHandler accessHandler) { var palette = this.impl_.Palette.Entries; BitmapUtil.InvokeAsLocked(this.impl_, bmpData => { var ptr = (byte *)bmpData.Scan0; void GetHandler(int x, int y, out byte r, out byte g, out byte b, out byte a) { var index = y * bmpData.Width + x; var colorIndex = ptr[index]; var color = palette[colorIndex]; r = color.R; g = color.G; b = color.B; a = color.A; } accessHandler(GetHandler); }); }
public unsafe void Access(IImage.AccessHandler accessHandler) { BitmapUtil.InvokeAsLocked(this.impl_, bmpData => { var ptr = (byte *)bmpData.Scan0; void GetHandler(int x, int y, out byte r, out byte g, out byte b, out byte a) { var index = 4 * (y * bmpData.Width + x); b = ptr[index]; g = ptr[index + 1]; r = ptr[index + 2]; a = ptr[index + 3]; } accessHandler(GetHandler); }); }
public void Access(IImage.AccessHandler accessHandler) => this.impl_.Access(accessHandler);