UIImageViewで12ビットまたは16ビットの画像を表示したいだけですが、画像が正しく表示されないので、これらの画像を表示するために数日苦労している解決策を教えてください
詳細については、コードと画像があるこのリンクを確認してください。コードはここに再現されています:
const int bytesPerPixel = 4;
int _width = (int)_drawArg.RectUIImageMatrix.Width;
int _height = (int)_drawArg.RectUIImageMatrix.Height;
CGImage _bitmap ;
Rectangle srcRectangle = new Rectangle(0, 0, imageGraphic.Columns, imageGraphic.Rows);
Rectangle rect = Rectangle.Round(new RectangleF(0,0,_width , _height));
Rectangle dstRectangle = rect;
int[] srcPixels = new int[image.Columns * image.Rows * image.PixelData.BytesPerPixel];
int bitsPerComponent = 8;
int bytesPerRow = srcRectangle.Width * bytesPerPixel *2;
var pixelBytes = imageGraphic.PixelData.Raw;
CGColorSpace _color = CGColorSpace.CreateDeviceRGB();
CGDataProvider _provide = new CGDataProvider(pixelBytes , 0,pixelBytes.Length);
_bitmap = new CGImage(srcRectangle.Width,srcRectangle.Height ,bitsPerComponent,32,bytesPerRow , _color , CGBitmapFlags.ByteOrder16Big | CGBitmapFlags.PremultipliedLast ,_provide ,null ,true ,CGColorRenderingIntent.Default);
ImgView.Image = UIImage.FromImage(_bitmap);
そこには
advcで助けてくれてありがとう