gpt4 book ai didi

ios - 一个场景中的相机/图库按钮,另一个场景中的图像

转载 作者:行者123 更新时间:2023-11-28 08:38:12 25 4
gpt4 key购买 nike

我是 Swift 和 iOS 编程的新手,所以请多多包涵。

现在我有 2 个场景,View Controller 和 Edit Photo。 Image

在 View Controller 中,我有 2 个按钮,一个用于使用 iPhone 的相机拍照,另一个用于从图库中选择一张照片。如果我按下任一按钮,代码可以正常工作。但是,我的问题是图像在拍摄/选择后发送到哪里。

我想要它做的是在用户拍摄照片或从图库中选择照片后,我希望图像有自己的 View ,以便以后可以对其进行编辑。我正在创建一个 meme 应用程序,所以我希望图像能够显示在屏幕上。

这就是我无法工作的地方。我可以将 UIImageView 放在与按钮相同的 View 上,它就是这样工作的,但我无法让图像进入它自己的 View 。

查看 Controller 代码

import UIKit

class ViewController: UIViewController, UIImagePickerControllerDelegate,
UINavigationBarDelegate, UINavigationControllerDelegate
{

override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.

}

override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}

//Opens the camera
@IBAction func openCameraButton(sender: AnyObject) {

if UIImagePickerController.isSourceTypeAvailable(UIImagePickerControllerSourceType.Camera) {
let imagePicker = UIImagePickerController()
imagePicker.delegate = self
imagePicker.sourceType = UIImagePickerControllerSourceType.Camera;
imagePicker.allowsEditing = false
self.presentViewController(imagePicker, animated: true, completion: nil)
}
}

//Opens the photo gallery
@IBAction func openGalleryButton(sender: AnyObject) {

if UIImagePickerController.isSourceTypeAvailable(UIImagePickerControllerSourceType.PhotoLibrary) {
let imagePicker = UIImagePickerController()
imagePicker.delegate = self
imagePicker.sourceType = UIImagePickerControllerSourceType.PhotoLibrary;
imagePicker.allowsEditing = true
self.presentViewController(imagePicker, animated: true, completion: nil)
}
}
}

下面的代码是我想要在新 View 中使用的代码。我尝试创建一个从 ImageView 到 EditPhoto.swift 文件的导出,但场景之后没有连接。

//Saves the image
@IBOutlet weak var imagePicked: UIImageView!

func imagePickerController(picker: UIImagePickerController, didFinishPickingImage image: UIImage!, editingInfo: [NSObject : AnyObject]!) {
imagePicked.image = image
self.dismissViewControllerAnimated(true, completion: nil);
}

如有任何帮助,我们将不胜感激。如果我做错了,请告诉我。谢谢。

最佳答案

我的代码是 Objective C,我发布它,你会明白我的想法和它对我的工作,相机图像和画廊图像,

imageAddView 是 UIImageView,

我的图库获取图片的方法如下,

-(void)addphotos
{
UIImagePickerController *photoPicker = [[UIImagePickerController alloc] init];
photoPicker.delegate = self;
photoPicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
photoPicker.allowsEditing= YES;

[self presentViewController:photoPicker animated:YES completion:NULL];
isCaptureImage = NO;
}

我的相机拍摄方法如下,

-(void) TakeNewphoto
{
if (![UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) {

UIAlertView *myAlertView = [[UIAlertView alloc] initWithTitle:@"Error"
message:@"Device has no camera"
delegate:nil
cancelButtonTitle:@"OK"
otherButtonTitles: nil];

[myAlertView show];

}
else
{
UIImagePickerController *photoPicker = [[UIImagePickerController alloc] init];
photoPicker.delegate = self;
photoPicker.sourceType = UIImagePickerControllerSourceTypeCamera;
photoPicker.mediaTypes = [NSArray arrayWithObjects:
(NSString *) kUTTypeImage,
nil];
photoPicker.allowsEditing = YES;
[self presentViewController:photoPicker animated:YES completion:NULL];
isCaptureImage = YES;
}
}

- (void)imagePickerController:(UIImagePickerController *)photoPicker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
NSString *mediaType;
mediaType = [info objectForKey:UIImagePickerControllerMediaType];


if ([mediaType isEqualToString:(NSString *)kUTTypeImage ])
{
if (isCaptureImage == NO)
{
ALAssetsLibrary *library = [ALAssetsLibrary new];

[library assetForURL:[info valueForKey:UIImagePickerControllerReferenceURL] resultBlock:^(ALAsset *asset) {
ALAssetRepresentation *original = [asset defaultRepresentation];
UIImage *myimag = [UIImage imageWithCGImage:[original fullScreenImage] scale:[original scale] orientation:0];
imageAddView.image = [UIImage squareImageWithImage:myimag scaledToSize:CGSizeMake(640, 640)];
} failureBlock:^(NSError *error) {
NSLog(@"Failed to load captured image.");
}];

[photoPicker dismissViewControllerAnimated:YES completion:Nil];
}
else
{
UIImage * image = (UIImage*) [info objectForKey:UIImagePickerControllerEditedImage];
imageAddView.image = [UIImage squareImageWithImage:image scaledToSize:CGSizeMake(640, 640)];

[photoPicker dismissViewControllerAnimated:YES completion:NULL];
}

}

}

希望对您有所帮助。

关于ios - 一个场景中的相机/图库按钮,另一个场景中的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37129891/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com