我有一个UIImage(Cocoa Touch).从那以后,我很高兴得到一个CGImage或其他你想要的东西.我想写这个函数:
- (int)getRGBAFromImage:(UIImage *)image atX:(int)xx andY:(int)yy {
// [...]
// What do I want to read about to help
// me fill in this bit, here?
// [...]
int result = (red << 24) | (green << 16) | (blue << 8) | alpha;
return result;
}
Run Code Online (Sandbox Code Playgroud)
谢谢!
在后台线程中,我的应用程序需要从磁盘读取图像,将它们缩小到屏幕大小(1024x768或2048x1536)并将它们保存回磁盘.原始图像主要来自相机胶卷,但其中一些可能具有较大的尺寸(例如3000x3000).
稍后,在不同的线程中,这些图像将经常缩小到500x500左右的不同大小并再次保存到磁盘.
这让我想知道:在iOS,性能和内存方面,最有效的方法是什么?我使用了两种不同的API:
CGImageSource和CGImageSourceCreateThumbnailAtIndex从ImageIO;CGBitmapContext并将结果保存到磁盘CGImageDestination.两者都适合我,但我想知道他们在性能和内存使用方面是否有任何差异.如果有更好的选择,当然.
我想用绘制图像UIImage的drawInRect:方法.这是代码:
UIImage *image = [UIImage imageNamed:@"OrangeBadge.png"];
UIGraphicsBeginImageContext(image.size);
[image drawInRect:CGRectMake(0, 0, image.size.width, image.size.height)];
UIImage *resultImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
Run Code Online (Sandbox Code Playgroud)
问题是生成的图像模糊.这是与源图像(左侧)相比得到的图像(在右侧):

我试过了两个,CGContextSetAllowsAntialiasing(UIGraphicsGetCurrentContext(), NO) CGContextSetShouldAntialias(UIGraphicsGetCurrentContext(), NO)但这并没有解决问题.
有任何想法吗?
提前致谢.