我有一个小的iPhone应用程序正在处理我正在使用UIImageView显示图像.我正在使用Aspect Fit模式进行扩展.我想让图像按比例放大而不进行插值/平滑(我希望它看起来像素化).有什么方法可以改变这种行为吗?
一个更普遍的问题是我可以实现我自己的缩放算法,还是有其他内置的我可以选择?
我将CGBitmapContextRef用于大型可变图像.比我在UIView.drawRect中绘制一个部分.这在iPhone 3GS上运行良好 - 17FPS.但在iPhone 4上调用subj方法非常慢 - 总FPS为1.5!
profiler说:在3GS上调用CGSBlendBGRA8888到RGBA8888,占总时间的23%.在4G相同的代码调用argb32_sample_RGBA32/argb32_image_mark需要~90%.哇!
位图的颜色空间是CGColorSpaceCreateDeviceRGB.并且创建标志是kCGImageAlphaPremultipliedLast.
我可以做些什么来提高iPhone 4的性能?有什么建议 ?
我需要进行UIImageView支持放大/缩小,最重要的是,当放大图像时,应该看到清晰的大像素,而不是模糊处理的效果,如下图所示.
它应该是这样的:

不应该那样:

我的代码不起作用:
- (void)viewDidLoad {
[super viewDidLoad];
self.view.backgroundColor = [UIColor whiteColor];
imageView = [[ColorPickImageView alloc] initWithImage:self.image];
imageView.contentMode = UIViewContentModeScaleAspectFit;
[self addGestureRecognizerToView:imageView];
[imageView setUserInteractionEnabled:YES];
[imageView setMultipleTouchEnabled:YES];
[self.view addSubview:imageView];
[imageView setTranslatesAutoresizingMaskIntoConstraints:NO];
NSDictionary *views = NSDictionaryOfVariableBindings(imageView);
[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-0-[imageView]-0-|" options:0 metrics:nil views:views]];
[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-0-[imageView]-0-|" options:0 metrics:nil views:views]];
}
- (void)addGestureRecognizerToView:(UIView *)view
{
UIPinchGestureRecognizer *pinchGestureRecognizer = [[UIPinchGestureRecognizer alloc] initWithTarget:self action:@selector(pinchView:)];
[view addGestureRecognizer:pinchGestureRecognizer];
}
- (void)pinchView:(UIPinchGestureRecognizer *)pinchGestureRecognizer
{
UIView *view = pinchGestureRecognizer.view;
if (pinchGestureRecognizer.state == UIGestureRecognizerStateBegan || pinchGestureRecognizer.state == UIGestureRecognizerStateChanged) …Run Code Online (Sandbox Code Playgroud)