相关疑难解决方法(0)

如何从UIImage(Cocoa Touch)或CGImage(Core Graphics)获取像素数据?

我有一个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)

谢谢!

cocoa cocoa-touch core-graphics

196
推荐指数
9
解决办法
14万
查看次数

在iOS上缩小图像的内存效率最高的方法是什么?

在后台线程中,我的应用程序需要从磁盘读取图像,将它们缩小到屏幕大小(1024x768或2048x1536)并将它们保存回磁盘.原始图像主要来自相机胶卷,但其中一些可能具有较大的尺寸(例如3000x3000).

稍后,在不同的线程中,这些图像将经常缩小到500x500左右的不同大小并再次保存到磁盘.

这让我想知道:在iOS,性能和内存方面,最有效的方法是什么?我使用了两种不同的API:

两者都适合我,但我想知道他们在性能和内存使用方面是否有任何差异.如果有更好的选择,当然.

memory-management core-graphics cgimage ios javax.imageio

22
推荐指数
3
解决办法
5158
查看次数

UIImage的drawInrect:平滑图像

我想用绘制图像UIImagedrawInRect:方法.这是代码:

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)但这并没有解决问题.

有任何想法吗?

提前致谢.

antialiasing uikit uiimage ios

16
推荐指数
1
解决办法
5869
查看次数