如下图所示,我想为从照片库中提取的图像实现“移动和缩放”功能。
如果您有任何想法或代码,请提供给我。
提前完成。
答案 0 :(得分:7)
来自这个问题的答案Set dimensions for UIImagePickerController “move and scale” cropbox
的链接我建议的解决方案是禁用图像选择器的编辑 并自己处理。例如,我把图像放在可滚动的, 可缩放的图像视图。在图像视图的顶部是固定位置 “裁剪指南视图”,用于绘制用户看到的裁剪指示。 假设指南视图具有可见rect(属性)的属性 保持)和边缘宽度(丢弃的部分)你可以得到 如此裁剪矩形。
答案 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中有一些示例应用程序,它们采用条形码的图片。它允许移动和缩放图像。我看着代码。但你可以尝试作为你的最后选择。