iPhone:如何实施"移动和扩展"从照片库中获取的图像的功能

时间:2012-02-29 09:44:45

标签: iphone objective-c photo-gallery

如下图所示,我想为从照片库中提取的图像实现“移动和缩放”功能。

如果您有任何想法或代码,请提供给我。

image

提前完成。

5 个答案:

答案 0 :(得分:7)

请参阅此answer by Jane Sales

来自这个问题的答案Set dimensions for UIImagePickerController “move and scale” cropbox

  

我建议的解决方案是禁用图像选择器的编辑   并自己处理。例如,我把图像放在可滚动的,   可缩放的图像视图。在图像视图的顶部是固定位置   “裁剪指南视图”,用于绘制用户看到的裁剪指示。   假设指南视图具有可见rect(属性)的属性   保持)和边缘宽度(丢弃的部分)你可以得到   如此裁剪矩形。

以下是Re-sizing + UIImage

的链接

1)Link for Cropping a UIImage

2)Another link

3)More things to do with UIImage

答案 1 :(得分:3)

这是非常晚的,但希望它会有所帮助。

在UIImagePickerController委托方法imagePickerController:didFinishPickingMediaWithInfo:中,通过UIImagePickerControllerEditedImage键访问“已移动”和“缩放”图像

 - (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
 {
     UIImage *img = (UIImage *)[info objectForKey: UIImagePickerControllerEditedImage];

 // Do what you need to with that image

 }

希望它有所帮助!

答案 2 :(得分:2)

也许您正在寻找:

UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init];
[imagePicker setAllowsEditing:YES];

然后在委托方法中:

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
    UIImage *chosenImage = [info objectForKey:UIImagePickerControllerEditedImage];
    if(!chosenImage) {
        chosenImage = [info objectForKey:UIImagePickerControllerOriginalImage];
    }
    [self dismissViewControllerAnimated:YES completion:nil];
}

答案 3 :(得分:1)

在Swift 4.2中,确保将pickerController.allowsEditing = true添加到访问照片的方法中。

然后,使用两个合格的“ if语句”创建以下方法。 “ if语句”将涵盖两种不同的情况:1)用户编辑照片-.editedImage或2)用户未编辑照片-.originalImage

为使此方法正常工作,请确保首先放置.editedImage“ if语句”。我不知道为什么会这样,但是我必须这样做。

func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) {

    if let editedImage = info[UIImagePickerController.InfoKey.editedImage] as? UIImage {

        imageView.image = editedImage

    } else if let image = info[UIImagePickerController.InfoKey.originalImage] as? UIImage {

        imageView.image = image
    }


    self.dismiss(animated: true, completion: nil)

}

答案 4 :(得分:0)

请仅在其他人不工作的情况下通过此答案.... :)

ZBar project中有一些示例应用程序,它们采用条形码的图片。它允许移动和缩放图像。我看着代码。但你可以尝试作为你的最后选择。