相关疑难解决方法(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万
查看次数

如何比较两个UIImage对象

我正在开发一个应用程序.因为我在imageviews更改UIImageview图像之前使用.SO 我需要在UIimageobejct中获取该图像并与另一个UIImage对象进行比较以找到它们是否为sam.所以请告诉我如何做到这一点.

ios

59
推荐指数
10
解决办法
4万
查看次数

Objective-C:将图像与先前保存的另一图像进行比较

当有一个图像已经使用NSSearchPathForDirectoriesInDomains方法进行保存和加载过程时,我有一个关于比较Objective-C中的UIImages的问题.

我想要的目的是根据图像显示的内容,在点击时将用户引导到新的屏幕.

为简单起见,我们假设有两种可能性 - 黑色图像和绿色图像.单击黑色图像将转到xib1,单击绿色图像将转到xib2.

这很简单,并且一直有效,直到我实现了一个保存和加载系统.

要保存,请执行以下操作:

paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
documentsDirectory = [paths objectAtIndex:0];
pngFilePath = [NSString stringWithFormat:@"%@/test.png",documentsDirectory];
data1 = [NSData dataWithData:UIImagePNGRepresentation([level1part1 objectAtIndex:0])];
[data1 writeToFile:pngFilePath atomically:YES];
Run Code Online (Sandbox Code Playgroud)

并加载我执行以下操作:

paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
documentsDirectory = [paths objectAtIndex:0];
pngFilePath = [NSString stringWithFormat:@"%@/test.png",documentsDirectory];
UIImage *image = [UIImage imageWithContentsOfFile:pngFilePath];
[button1 setImage:image forState:UIControlStateNormal];
Run Code Online (Sandbox Code Playgroud)

这很好,当我退出程序并重新启动它时,图像会保留在屏幕上,如我所愿.假设现在出现在button1上的图像是绿色图像.

当我点击id为sender的按钮后调用以下代码(这是button1):

if(sender.currentImage == [UIImage imageNamed:self.greenImage])
{
    VisitAlreadyCorrectScreen *screen = [[VisitAlreadyCorrectScreen alloc] initWithNibName:nil bundle:nil];
    screen.modalTransitionStyle = UIModalTransitionStyleCoverVertical;
    [self presentModalViewController:screen animated:YES];
}
Run Code Online (Sandbox Code Playgroud)

即使currentImage是绿色图像,并且与我正在比较的绿色图像是相同的图像,我认为因为我在保存过程中将绿色图像保存到内存中,因此比较不起作用,因为它们保存在不同的地方在内存中 - 由以下NSLog验证:

Current Image: <UIImage: 0x95614c0>, and Yes …
Run Code Online (Sandbox Code Playgroud)

memory compare objective-c uiimage ios

8
推荐指数
1
解决办法
9322
查看次数

比较两个图像是否相同(iOS)

可能重复:
在iPhone上如何将一个图像与另一个图像进行比较以查看它们是否相似一定百分比?

我找到了这段代码,并试图更好地理解它:

UIImage *img1 = // Some photo;
UIImage *img2 = // Some photo;

NSData *imgdata1 = UIImagePNGRepresentation(img1);

NSData *imgdata2 = UIImagePNGRepresentation(img2);

if ([imgdata1 isEqualToData:imgdata2]) {
    NSLog(@"Same Image");
}
Run Code Online (Sandbox Code Playgroud)

这是否证实图像1与图像2完全相同?这种方法是最佳实践,还是有更好的方法?

iphone objective-c ios

5
推荐指数
2
解决办法
1万
查看次数