2014-12-15 2 views
0

Я использую следующий код для сохранения uiimage. Перед сохранением изображения я хочу проверить, что изображение пуст или пуст.Как проверить uiimage пуст или пустой

UIImage * image = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext();

Примечание:

UIImage, check if contain image How to check if a uiimage is blank? (empty, transparent)

я не смог найти решение в приведенной выше ссылке. Благодаря!!!

ответ

0

Я нашел решение для вышеуказанной проблемы. Это может помочь любому в будущем. Эта функция ниже прекрасно работает даже для прозрачного изображения PNG.

-(BOOL)isBlankImage:(UIImage *)myImage 
{ 
typedef struct 
{ 
    uint8_t red; 
    uint8_t green; 
    uint8_t blue; 
    uint8_t alpha; 
} MyPixel_T; 

CGImageRef myCGImage = [myImage CGImage]; 

//Get a bitmap context for the image 
CGContextRef bitmapContext = CGBitmapContextCreate(NULL, CGImageGetWidth(myCGImage), CGImageGetHeight(myCGImage), 
         CGImageGetBitsPerComponent(myCGImage), CGImageGetBytesPerRow(myCGImage), 
         CGImageGetColorSpace(myCGImage), CGImageGetBitmapInfo(myCGImage)); 

//Draw the image into the context 
CGContextDrawImage(bitmapContext, CGRectMake(0, 0, CGImageGetWidth(myCGImage), CGImageGetHeight(myCGImage)), myCGImage); 

//Get pixel data for the image 
MyPixel_T *pixels = CGBitmapContextGetData(bitmapContext); 
size_t pixelCount = CGImageGetWidth(myCGImage) * CGImageGetHeight(myCGImage); 
for(size_t i = 0; i < pixelCount; i++) 
{ 
    MyPixel_T p = pixels[i]; 
    //Your definition of what's blank may differ from mine 
    if(p.red > 0 || p.green > 0 || p.blue > 0 || p.alpha > 0) 
     return NO; 
} 

return YES; 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^