我试图在我正在处理的pdf阅读器中反转图像的颜色以模拟夜晚模式,所以我尝试使用一个补码。我有一个问题,图像移动到右边也有一些噪音。
所以我问是否有更好的方法,请告诉我。此外,如果有一个带夜间模式的pdf阅读器库,你可以告诉我它并为我节省一天。
注意:
1-我使用了此链接中的代码:http://five.agency/iphone-image-processing/
2-这本书是pdf,页面是图像而不是文本。
3-我正在附上测试图像和结果。
self.imageView.image = [self onesComplement:image];
...
-(UIImage *)onesComplement:(UIImage *) image
{
CGImageRef sourceImage = image.CGImage;
CFDataRef theData;
theData = CGDataProviderCopyData(CGImageGetDataProvider(sourceImage));
UInt8 *pixelData = (UInt8 *) CFDataGetBytePtr(theData);
long dataLength = CFDataGetLength(theData);
int red = 0;
int green = 1;
int blue = 2;
for (int index = 0; index < dataLength; index +=4) {
pixelData[index + green] = ~ pixelData[index + green];
pixelData[index + red] = ~ pixelData[index + red];
pixelData[index + blue] = ~ pixelData[index + blue];
}
short bitsPerComponent = 8;
CGContextRef context;
context = CGBitmapContextCreate(pixelData,
CGImageGetWidth(sourceImage),
CGImageGetHeight(sourceImage),
bitsPerComponent,
CGImageGetBytesPerRow(sourceImage),
CGImageGetColorSpace(sourceImage),
kCGBitmapByteOrderDefault);
CGImageRef newCGImage = CGBitmapContextCreateImage(context);
UIImage *newImage = [UIImage imageWithCGImage:newCGImage];
CGContextRelease(context);
CFRelease(theData);
CGImageRelease(newCGImage);
return newImage;
}
答案 0 :(得分:-1)
创建一个夜间模式切换,一旦打开,在书页图像上方添加一个UILabel,并给它一个低alpha的黑色背景,你将通过它看到书,屏幕将足够黑暗夜间模式阅读。