45 votes

Conversion implicite du type d'énumération 'enum CGImageAlphaInfo' vers un type d'énumération différent 'CGBitmapinfo' (aka) 'enum CGBitmapInfo')

Je suis en train de convertir un vieux projet iOS 5 en iOS6.0 sur xCode5 et la plupart des avertissements et des erreurs ont été corrigés, sauf celle-ci. Avez-vous des suggestions sur la façon de réécrire le code pour éviter les avertissements du compilateur ?

#define kBitsPerComponent 8
#define kBitmapInfo       kCGImageAlphaPremultipliedLast

 - (UIImage*)scaleToSize:(CGSize)size :(UIImage *)image
{
CGBitmapInfo bitmapInfo = kBitmapInfo;
size_t bytesPerRow = size.width * 4.0;
CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
CGContextRef context = CGBitmapContextCreate(NULL, size.width,
                                             size.height, kBitsPerComponent,
                                             bytesPerRow, colorSpace, bitmapInfo);

CGRect rect = CGRectMake(0.0f, 0.0f, size.width, size.height);
CGContextDrawImage(context, rect, image.CGImage);

CGImageRef scaledImageRef = CGBitmapContextCreateImage(context);
UIImage* scaledImage = [UIImage imageWithCGImage:scaledImageRef];

CGImageRelease(scaledImageRef);
CGContextRelease(context);
CGColorSpaceRelease(colorSpace);

return scaledImage;
}

le code donne un avertissement Conversion implicite du type d'énumération 'enum CGImageAlphaInfo' vers un type d'énumération différent 'CGBitmapinfo' (aka) 'enum CGBitmapInfo')

J'apprécierais beaucoup si quelqu'un pouvait m'aider à modifier le code.

118voto

Dietrich Epp Points 72865

Dans la documentation :

Les constantes pour spécifier les informations du canal alpha sont déclarées avec le type CGImageAlphaInfo mais peuvent être passées à ce paramètre sans risque.

Vous pouvez donc simplement utiliser un casting pour supprimer l'avertissement :

CGBitmapInfo bitmapInfo = (CGBitmapInfo) kBitmapInfo;

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X