सवाल गणितीय प्रकार 'enum CGImageAlphaInfo' से अलग रूपांतरण प्रकार 'CGBitmapinfo' (उर्फ) 'enum CGBitmapInfo' पर लागू रूपांतरण ')


मैं xCode5 पर एक पुराना आईओएस 5 प्रोजेक्ट आईओएस 6.0 में परिवर्तित कर रहा हूं और अधिकांश चेतावनियां और त्रुटियां तय की गई हैं लेकिन इसके लिए। अनुपालन चेतावनियों से बचने के लिए कोड को फिर से लिखने के बारे में कोई सुझाव।

#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;
}

कोड एक चेतावनी देता है गणना गणना 'enum CGImageAlphaInfo' से अलग गणना प्रकार 'CGBitmapinfo' (उर्फ) 'enum CGBitmapInfo') पर लागू रूपांतरण

अगर कोई कोड को संशोधित करने में मदद कर सकता है तो कोई बहुत सराहना करेगा।


44
2017-09-20 16:36


मूल




जवाब:


दस्तावेज़ों से:

अल्फा चैनल जानकारी निर्दिष्ट करने के लिए स्थिरांक CGImageAlphaInfo प्रकार के साथ घोषित किए जाते हैं लेकिन इस पैरामीटर को सुरक्षित रूप से पास किया जा सकता है।

तो आप चेतावनी को दबाने के लिए सिर्फ एक कास्ट का उपयोग कर सकते हैं:

CGBitmapInfo bitmapInfo = (CGBitmapInfo) kBitmapInfo;

117
2017-09-20 16:45



बहुत धन्यवाद ! यह काम करता हैं ! - iSrini
इसे ढूंढना अच्छा है। एसओ पर यहां बहुत सारे उत्तर चेतावनी-ट्रिगरिंग स्थिरांक का उपयोग करते हैं, और अब तक यह बहुत परेशान था, क्योंकि एक्सकोड में "परिभाषा के लिए कूदना" स्पष्ट रूप से दिखाता है कि वे पूरी तरह अलग हैं enumऔर यह स्पष्ट नहीं है कि वे कार्यात्मक रूप से अदलाबदल योग्य हैं। - Nicolas Miari