在我的iOS应用程序中,我可以在UIImageView中显示图像,然后我想从UIImageView获取像素的RGB值。
我该怎么做?
这是C#中的Xamarin.iOS项目。感谢任何提示。
答案 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]) ;
}
}