在我的应用程序中,我有两个图像视图,第一个图像视图将是恒定的,对于第二个图像视图,在选择图像后它将缩放,它可以放置在视图中的任何位置,第二个图像将与第一个图像合并,合并后第二个图像视图将为零,第一个图像视图将有两个图像,我们可以在第二个图像视图中绘制尽可能多的图像,并且可以移动到任何地方,但我们需要图片一次只能使用单个图像。如何实现这一点。?.提前谢谢。
一个简单的图像通常每像素有32位的颜色信息(rgb:ff ff ff),灰度图像有8位。很明显,从 32 位到 8 位的转换是不可逆的。
为了实现您的目标,您必须保留原始图像的副本。
当您选择库中的图像时,将其保存在一个UIImage对象中作为原始图像,然后再对其应用任何灰度。
创建所选图像的另一个副本并对其应用灰度,并将此图像分配给 ImageView。
现在,当您触摸此图像视图(使用手势检测触摸)时,将原始图像设置为图像视图。
编辑:你可以有这样的函数:
- (void)imagePickerController:(UIImagePickerController *)picker
didFinishPickingMediaWithInfo:(NSDictionary *)info {
[picker dismissModalViewControllerAnimated:YES];
[picker release];
// Edited image works great (if you allowed editing)
UIImage *editedImage = [info objectForKey:UIImagePickerControllerEditedImage];
// AND the original image works great
UIImage *originalImage = [info objectForKey:UIImagePickerControllerOriginalImage];
// AND do whatever you want with it, (NSDictionary *)info is fine now
}
在上面的代码中,您可以在全局范围内声明editedImage
和originalImage
变量,editedImage
分配为ImageView
的图像,并在触摸时ImageView
可以显示originalImage