如何实现双曝光拾取图像?
Posted
技术标签:
【中文标题】如何实现双曝光拾取图像?【英文标题】:How To implement double exposure for picking images? 【发布时间】:2014-11-27 05:03:07 【问题描述】:在我的应用程序中,我有两个图像视图,第一个图像视图将是恒定的,对于第二个图像视图,在选择图像后它会缩放,它可以放置在视图中的任何位置,第二个图像将与第一个图像合并后合并第二个 imageview 将是 nil 并且第一个 imageview 将有两个图像,我们可以在第二个 imageview 中拍摄尽可能多的图像并且可以移动到任何地方,但我们需要一次只拍摄单个图像。如何实现这个。?提前谢谢。
【问题讨论】:
这是新问题,请回复我 【参考方案1】:一张简单的图像通常每个像素有 32bit 的颜色信息(rgb: ff ff ff),一张灰度图像有 8bit。 很明显,从 32 位到 8 位的转换是不可逆的。
【讨论】:
感谢您的回复。那么如何获取原图..? 不可逆意味着不可能-您唯一的选择是浏览库中的所有图片,将它们转换为灰度并进行比较(实际上几个像素就足够了)-甚至更好地跟踪首先是原始图像【参考方案2】:要实现您的目标,您必须保留原始图像的副本。
当您从图库中选择图像时,将其作为原始图像保存在一个 UIImage 对象中,然后再对其应用任何灰度。
制作另一个选定图像的副本并在其上应用灰度并将此图像分配给 ImageView。
现在,当您触摸此 ImageView(使用手势检测触摸)时,将 originalImage 设置为 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
【讨论】:
在选择图像时它应该保存为灰度但是如何获取原始图像的副本? 您是否正在使用 UIImagePicker 编辑图像并将编辑后的图像保存在 UIImagePicker 委托中? 我正在使用 didFinishPickingmediawithInfo 方法在 uiimageview 中选择并保存它,而仅保存它正在更改为灰度 知道的请回复我以上是关于如何实现双曝光拾取图像?的主要内容,如果未能解决你的问题,请参考以下文章
使用TunesKit AceMovi Video Editor Mac制作双曝光视频详细教程