如何实现双曝光拾取图像?

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 

在上面的代码中,您可以在全局范围内声明editedImageoriginalImage 变量,将editedImage 指定为ImageView 的图像,并在ImageView 上触摸您可以显示originalImage

【讨论】:

在选择图像时它应该保存为灰度但是如何获取原始图像的副本? 您是否正在使用 UIImagePicker 编辑图像并将编辑后的图像保存在 UIImagePicker 委托中? 我正在使用 didFinishPickingmediawithInfo 方法在 uiimageview 中选择并保存它,而仅保存它正在更改为灰度 知道的请回复我

以上是关于如何实现双曝光拾取图像?的主要内容,如果未能解决你的问题,请参考以下文章

使用TunesKit AceMovi Video Editor Mac制作双曝光视频详细教程

求教OPENGL达人 如何做到图像的拾取并可以随鼠标拖动 鄙人QQ664538975 不胜感激

Unity实现鼠标拾取电脑屏幕指定区域像素点颜色

图像增强基于BIMEF算法多曝光融合框架实现微光图像增强

图像增强基于BIMEF算法多曝光融合框架实现微光图像增强

快手全民特效大赛与王者荣耀双IP联合,200+优质魔表作品助力项目实现超34亿曝光