gpt4 book ai didi

ios - 如何检查 uiimage 是否为空白? (空的,透明的)

转载 作者:可可西里 更新时间:2023-11-01 03:29:49 25 4
gpt4 key购买 nike

检查 UIImage 是否为空白的最佳方法是什么?
我有这个绘画编辑器,它返回一个 UIImage;如果上面没有任何内容,我不想保存这张图片。

最佳答案

试试这段代码:

BOOL isImageFlag=[self checkIfImage:image];

和 checkIfImage 方法:

- (BOOL) checkIfImage:(UIImage *)someImage {
CGImageRef image = someImage.CGImage;
size_t width = CGImageGetWidth(image);
size_t height = CGImageGetHeight(image);
GLubyte * imageData = malloc(width * height * 4);
int bytesPerPixel = 4;
int bytesPerRow = bytesPerPixel * width;
int bitsPerComponent = 8;
CGContextRef imageContext =
CGBitmapContextCreate(
imageData, width, height, bitsPerComponent, bytesPerRow, CGImageGetColorSpace(image),
kCGImageAlphaPremultipliedLast | kCGBitmapByteOrder32Big
);

CGContextSetBlendMode(imageContext, kCGBlendModeCopy);
CGContextDrawImage(imageContext, CGRectMake(0, 0, width, height), image);
CGContextRelease(imageContext);

int byteIndex = 0;

BOOL imageExist = NO;
for ( ; byteIndex < width*height*4; byteIndex += 4) {
CGFloat red = ((GLubyte *)imageData)[byteIndex]/255.0f;
CGFloat green = ((GLubyte *)imageData)[byteIndex + 1]/255.0f;
CGFloat blue = ((GLubyte *)imageData)[byteIndex + 2]/255.0f;
CGFloat alpha = ((GLubyte *)imageData)[byteIndex + 3]/255.0f;
if( red != 1 || green != 1 || blue != 1 || alpha != 1 ){
imageExist = YES;
break;
}
}

free(imageData);
return imageExist;
}

您必须添加 OpenGLES 框架并将其导入 .m 文件中:

#import <OpenGLES/ES1/gl.h>

关于ios - 如何检查 uiimage 是否为空白? (空的,透明的),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4735899/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com