Étant donné un CGRect (rect
) et un UIImage (image
), comment obtenez-vous les valeurs alpha (uniquement) des pixels de l'image dans le rectangle?Obtenir le canal alpha à partir du rectangle UIImage
Le code suivant renvoie toujours 0 alpha, peu importe l'image ou le rectangle.
CGContextRef context = CGBitmapContextCreate(NULL,
rect.size.width,
rect.size.height,
8,
rect.size.width,
NULL,
kCGImageAlphaOnly);
UIGraphicsPushContext(context);
[image drawInRect:rect];
char *pixels = CGBitmapContextGetData(context);
NSUInteger pixelCount = rect.size.width * rect.size.height;
for (int i = 0; i < pixelCount; i++)
{
char pixel = pixels[i];
CGFloat alpha = pixel/255.0;
NSLog(@"%f", alpha);
}
UIGraphicsPopContext();
CGContextRelease(context);
curieux de savoir si vous avez essayé ma recommandation ci-dessous. Vous vous demandez si cela a résolu le problème? – Spectravideo328
@ Spectravideo328 Non. – hpique
Je me demande si l'espace de couleurs est important lorsque vous capturez une image à partir du contexte. Avez-vous essayé de créer un CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB(); et en l'affectant au 6ème argument (en remplaçant NULL). – Spectravideo328