如何在Xamarin.iOS中从CGImage获取RGB值

时间:2016-09-29 07:56:39

标签: c# ios xamarin.ios

在我的iOS应用程序中,我可以在UIImageView中显示图像,然后我想从UIImageView获取像素的RGB值。

我该怎么做?

这是C#中的Xamarin.iOS项目。感谢任何提示。

2 个答案:

答案 0 :(得分:0)

为了获取UIImage中像素的RGB值,你必须实际使用CGImage。

所以你有UIImageView使用UIImage。要获得CGImage,您必须使用UIImage.CGImage属性,然后使用任何可用的解决方案。 例如,this one

备选方案:How to get pixel data from a UIImage (Cocoa Touch) or CGImage (Core Graphics)?

答案 1 :(得分:-1)

Thanks for Alex Sorokoletov, Now ,I have a solution for my project , It is like this:

        nint pixLen = imageWidth * imageHeigh;
        nint count = pixLen  * 4 ;
        byte[] newImageArr = new byte[count];
 using (var context = new CGBitmapContext(newImageArr, imageWidth, imageHeigh,
            bitsPerComponent, bytesPerRow, colorSpace, CGImageAlphaInfo.PremultipliedLast))
        {

            RectangleF imageRec = new RectangleF(0, 0, imageWidth, imageHeigh);

            context.DrawImage(imageRec, myCgImage);

            for (int i = 0; i < count; i = i+4)
            {

                float clorRed = (newImageArr[i]) ;
                float clorGreen = (newImageArr[i + 1]) ;
                float clorBlue = (newImageArr[i + 2]) ;
            }
       }