打開(kāi)相機(jī):
成都創(chuàng)新互聯(lián)公司是一家專注于成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作與策劃設(shè)計(jì),龍里網(wǎng)站建設(shè)哪家好?成都創(chuàng)新互聯(lián)公司做網(wǎng)站,專注于網(wǎng)站建設(shè)十余年,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:龍里等地區(qū)。龍里做網(wǎng)站價(jià)格咨詢:18980820575
[cpp] view plain copy
//先設(shè)定sourceType為相機(jī),然后判斷相機(jī)是否可用(ipod)沒(méi)相機(jī),不可用將sourceType設(shè)定為相片庫(kù)
UIImagePickerControllerSourceType sourceType = UIImagePickerControllerSourceTypeCamera;
// if (![UIImagePickerController isSourceTypeAvailable: UIImagePickerControllerSourceTypeCamera]) {
// sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
// }
//sourceType = UIImagePickerControllerSourceTypeCamera; //照相機(jī)
//sourceType = UIImagePickerControllerSourceTypePhotoLibrary; //圖片庫(kù)
//sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum; //保存的相片
UIImagePickerController *picker = [[UIImagePickerController alloc] init];//初始化
picker.delegate = self;
picker.allowsEditing = YES;//設(shè)置可編輯
picker.sourceType = sourceType;
[self presentModalViewController:picker animated:YES];//進(jìn)入照相界面
[picker release];
打開(kāi)相冊(cè):(區(qū)分pad和iphone)
for iphone:
[cpp] view plain copy
UIImagePickerController *pickerImage = [[UIImagePickerController alloc] init];
if([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypePhotoLibrary]) {
pickerImage.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
//pickerImage.sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum;
pickerImage.mediaTypes = [UIImagePickerController availableMediaTypesForSourceType:pickerImage.sourceType];
}
pickerImage.delegate = self;
pickerImage.allowsEditing = NO;
[self presentModalViewController:pickerImage animated:YES];
[pickerImage release];
for ipad:
[cpp] view plain copy
UIImagePickerControllerSourceType sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
//sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum; //保存的相片
UIImagePickerController *picker = [[UIImagePickerController alloc] init];
picker.delegate = self;
picker.allowsEditing = NO;//是否允許編輯
picker.sourceType = sourceType;
/*
如果從一個(gè)導(dǎo)航按鈕處呈現(xiàn),使用:
presentPopoverFromBarButtonItem:permittedArrowDirections:animated:;
如果要從一個(gè)視圖出呈現(xiàn),使用:
presentPopoverFromRect:inView:permittedArrowDirections:animated:
如果設(shè)備旋轉(zhuǎn)以后,位置定位錯(cuò)誤需要在父視圖控制器的下面方法里面重新定位:
didRotateFromInterfaceOrientation:(在這個(gè)方法體里面重新設(shè)置rect)
然后再次調(diào)用:
- (void)presentPopoverFromRect:(CGRect)rect inView:(UIView *)view permittedArrowDirections:(UIPopoverArrowDirection)arrowDirections animated:(BOOL)animated
*/
//UIPopoverController只能在ipad設(shè)備上面使用;作用是用于顯示臨時(shí)內(nèi)容,特點(diǎn)是總是顯示在當(dāng)前視圖最前端,當(dāng)單擊界面的其他地方時(shí)自動(dòng)消失。
UIPopoverController *popover = [[UIPopoverController alloc]initWithContentViewController:picker];
self.imagePicker = popover;
//permittedArrowDirections 設(shè)置箭頭方向
[self.imagePicker presentPopoverFromRect:CGRectMake(0, 0, 300, 300) inView:self.view permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
[picker release];
[popover release];
點(diǎn)擊相冊(cè)中的圖片 貨照相機(jī)照完后點(diǎn)擊use 后觸發(fā)的方法
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary
*)info
點(diǎn)擊cancel 調(diào)用的方法
- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker
1、統(tǒng)一收鍵盤的方法
[[[UIApplication sharedApplication] keyWindow] endEditing:YES];
2、提示框
BBAlertView *alert = [[BBAlertView alloc] initWithStyle:BBAlertViewStyleDefault
Title:@"刪除訂單"
message:@"是否刪除訂單,"
customView:nil
delegate:self
cancelButtonTitle:L(@"取消")
otherButtonTitles:L(@"確認(rèn)")];
[alert setCancelBlock:^{
}];
[alert setConfirmBlock:^{
[self orderDidRemovePressDown:tempDic Index:index.section];
}];
[alert show];
3、圖片的自適應(yīng)功能
self.brandImage.contentMode = UIViewContentModeScaleAspectFit;
4、cocoaPods清除緩存問(wèn)題
$ sudo rm -fr ~/.cocoapods/repos/master
$ pod setup
5、設(shè)置顯示鍵盤的樣式
textView.keyboardType =UIKeyboardTypeDefault;
//設(shè)置鍵盤右下角為完成(中文輸入法下)
textView.returnKeyType=UIReturnKeyDone;
6、輸出當(dāng)前時(shí)間
NSDateFormatter * dateFormatter=[[NSDateFormatter alloc]init];
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss.SSS"];
NSLog(@"當(dāng)前毫秒時(shí)間1==%@",[dateFormatter stringFromDate:[NSDate date]]);
7、顯示兩秒然后消失
UILabel * lab=[[UILabel alloc]initWithFrame:CGRectMake(60,Main_Screen_Height-64-49-60, Main_Screen_Width-120, 50)];
lab.backgroundColor=[UIColor grayColor];
ViewRadius(lab, 20);
lab.textAlignment=NSTextAlignmentCenter;
lab.text=@"請(qǐng)先進(jìn)行實(shí)名制驗(yàn)證";
[self.view addSubview:lab];
[UILabel animateWithDuration:2 animations:^{
lab.alpha=0;
}completion:^(BOOL finished) {
[lab removeFromSuperview];
}];
8、設(shè)置placeholder屬性的大小和顏色
[_phoneFie setValue:[UIColor grayColor] forKeyPath:@"_placeholderLabel.textColor"];
[_phoneFie setValue:[UIFont boldSystemFontOfSize:15] forKeyPath:@"_placeholderLabel.font"];
_phoneFie.returnKeyType=UIReturnKeyDone;
9、設(shè)置cell的交互完全不可以使用
//[cellTwo setUserInteractionEnabled:NO];
//設(shè)置cell不可以點(diǎn)擊,但是上面的子控件可以交互
cellTwo.selectionStyle=UITableViewCellSelectionStyleNone;
10、將textField的placeholder 屬性的字體向右邊移動(dòng)5
_field.leftView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 10*Width_375, _field.frame.size.height)];
_field.leftViewMode = UITextFieldViewModeAlways;
11、開(kāi)新線程使按鈕上的時(shí)間變化
-(void)startTime{
__block int timeout=60; //倒計(jì)時(shí)時(shí)間
UIButton * btn=(UIButton *)[self.view viewWithTag:1000];
dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
dispatch_source_t _timer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0,queue);
dispatch_source_set_timer(_timer,dispatch_walltime(NULL, 0),1.0*NSEC_PER_SEC, 0); //每秒執(zhí)行
dispatch_source_set_event_handler(_timer, ^{
if(timeout=0){
dispatch_source_cancel(_timer);
dispatch_async(dispatch_get_main_queue(), ^{
[btn setTitle:@"發(fā)送驗(yàn)證碼" forState:UIControlStateNormal];
btn.enabled = YES;
});
}else{
//? int minutes = timeout / 60;
int miao = timeout % 60;
if (miao==0) {
miao = 60;
}
NSString *strTime = [NSString stringWithFormat:@"%.2d", miao];
dispatch_async(dispatch_get_main_queue(), ^{
[btn setTitle:[NSString stringWithFormat:@"剩余%@秒",strTime] forState:UIControlStateNormal];
btn.enabled = NO;
});
timeout--;
}
});
dispatch_resume(_timer);
}
12、隱藏TableView 中多余的行
UIView * view=[[UIView alloc]initWithFrame:CGRectZero];
[_tabelView setTableFooterView:view];
13、UIView添加背景圖片
UIImage * image=[UIImage imageNamed:@"friend750"];
headSeV.layer.contents=(id)image.CGImage;
14、UITableView取消選中狀態(tài)
[tableView deselectRowAtIndexPath:indexPath animated:YES];// 取消選中
15、帶屬性的字符串
NSFontAttributeName? 字體
NSParagraphStyleAttributeName? 段落格式
NSForegroundColorAttributeName? 字體顏色
NSBackgroundColorAttributeName? 背景顏色
NSStrikethroughStyleAttributeName 刪除線格式
NSUnderlineStyleAttributeName? ? ? 下劃線格式
NSStrokeColorAttributeName? ? ? ? 刪除線顏色
NSStrokeWidthAttributeName 刪除線寬度
NSShadowAttributeName? 陰影
1.? 使用實(shí)例
UILabel *testLabel = [[UILabel alloc]initWithFrame:CGRectMake(0, 100, 320, 30)];
testLabel.backgroundColor = [UIColor lightGrayColor];
testLabel.textAlignment = NSTextAlignmentCenter;
NSMutableAttributedString *AttributedStr = [[NSMutableAttributedString alloc]initWithString:@"今天天氣不錯(cuò)呀"];
[AttributedStr addAttribute:NSFontAttributeName
value:[UIFont systemFontOfSize:16.0]
range:NSMakeRange(2, 2)];
[AttributedStr addAttribute:NSForegroundColorAttributeName
value:[UIColor redColor]
range:NSMakeRange(2, 2)];
testLabel.attributedText = AttributedStr;
[self.view addSubview:testLabel];
16、加大按鈕的點(diǎn)擊范圍
把UIButton的frame 設(shè)置的大一些,然后給UIButton設(shè)置一個(gè)小些的圖片
[tmpBtn setImageEdgeInsets:UIEdgeInsetsMake(5, 5, 5, 5)];
// 注意這里不能用setBackgroundImage
[tmpBtn setImage:[UIImage imageNamed:@"testBtnImage"] forState:UIControlStateNormal];
17、//避免self的強(qiáng)引用
__weak ViewController *weakSelf = self;
18、//類別的創(chuàng)建
command +n ——Objective-C File———(File Type? 選擇是類別還是擴(kuò)展)———(Class? 選擇為哪個(gè)控件寫類別)
19、修改UITableview 滾動(dòng)條顏色的方法
self.tableView.indicatorStyle=UIScrollViewIndicatorStyleWhite;
20、利用UIWebView顯示pdf文件
webView = [[UIWebView alloc]initWithFrame:CGRectMake(0, 0, 320, 480)];
[webView setDelegate:self];
[webView setScalesPageToFit:YES];
[webViewsetAutoresizingMask:UIViewAutoresizingFlexibleWidth |UIViewAutoresizingFlexibleHeight];
[webView setAllowsInlineMediaPlayback:YES];
[self.view addSubview:webView];
NSString *pdfPath = [[NSBundle mainBundle]pathForResource:@"ojc" ofType:@"pdf"];
NSURL *url = [NSURLfileURLWithPath:pdfPath];
NSURLRequest *request = [NSURLRequestrequestWithURL:url
cachePolicy:NSURLRequestUseProtocolCachePolicy
timeoutInterval:5];
[webView loadRequest:request];
21、將plist文件中的數(shù)據(jù)賦給數(shù)組
NSString *thePath = [[NSBundle mainBundle]pathForResource:@"States" ofType:@"plist"];
NSArray *array = [NSArrayarrayWithContentsOfFile:thePath];
22、隱藏狀態(tài)欄
[[UIApplication shareApplication]setStatusBarHidden: YES animated:NO];
23、給navigation? Bar? 設(shè)置title顏色
UIColor *whiteColor = [UIColor whiteColor];
NSDictionary *dic = [NSDictionary dictionaryWithObject:whiteColor forKey:NSForegroundColorAttributeName];
[self.navigationController.navigationBar setTitleTextAttributes:dic];
24、使用AirDrop 進(jìn)行分享
NSArray *array = @[@"test1", @"test2"];
UIActivityViewController *activityVC = [[UIActivityViewController alloc] initWithActivityItems:array applicationActivities:nil];
[self presentViewController:activityVC animated:YES
completion:^{
NSLog(@"Air");
}];
25、把tableview里面Cell的小對(duì)勾的顏色改成別的顏色
_mTableView.tintColor = [UIColor redColor];
26、UITableView去掉分割線
_tableView.separatorStyle = NO;
27、正則判斷手機(jī)號(hào)碼地址格式
- (BOOL)isMobileNumber:(NSString *)mobileNum {
//? ? 電信號(hào)段:133/153/180/181/189/177
//? ? 聯(lián)通號(hào)段:130/131/132/155/156/185/186/145/176
//? ? 移動(dòng)號(hào)段:134/135/136/137/138/139/150/151/152/157/158/159/182/183/184/187/188/147/178
//? ? 虛擬運(yùn)營(yíng)商:170
NSString *MOBILE = @"^1(3[0-9]|4[57]|5[0-35-9]|8[0-9]|7[06-8])\\d{8}$";
NSPredicate *regextestmobile = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", MOBILE];
return [regextestmobile evaluateWithObject:mobileNum];
}
28、控制交易密碼位數(shù)
-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{
if (textField.text.length =6){
[MBProgressHUD showMessage:@"密碼為6位" afterDelay:1.8];
return NO;
}
return YES;
}
29、判斷是不是空
if ([real_name isKindOfClass:[NSNull class]] ) {
return NO;}
30、點(diǎn)擊號(hào)碼撥打電話
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"tel://400966220"]];
31、控制UITabbar的選擇哪一個(gè)
[self.tabBarController setSelectedIndex:1];
32、獲取當(dāng)前App的版本號(hào)
NSDictionary?*infoDictionary?=?[[NSBundle?mainBundle]?infoDictionary];
CFShow(infoDictionary);
//?app名稱
NSString?*app_Name?=?[infoDictionary?objectForKey:@"CFBundleDisplayName"];
//?app版本
NSString?*app_Version?=?[infoDictionary?objectForKey:@"CFBundleShortVersionString"];
//?app?build版本
NSString?*app_build?=?[infoDictionary?objectForKey:@"CFBundleVersion"];
33、蘋果app權(quán)限NSPhotoLibraryUsageDescriptionApp需要您的同意,才能訪問(wèn)相冊(cè)NSCameraUsageDescriptionApp需要您的同意,才能訪問(wèn)相機(jī)NSMicrophoneUsageDescriptionApp需要您的同意,才能訪問(wèn)麥克風(fēng)NSLocationUsageDescriptionApp需要您的同意,才能訪問(wèn)位置NSLocationWhenInUseUsageDescriptionApp需要您的同意,才能在使用期間訪問(wèn)位置NSLocationAlwaysUsageDescriptionApp需要您的同意,才能始終訪問(wèn)位置NSCalendarsUsageDescriptionApp需要您的同意,才能訪問(wèn)日歷NSRemindersUsageDescriptionApp需要您的同意,才能訪問(wèn)提醒事項(xiàng)NSMotionUsageDescriptionApp需要您的同意,才能訪問(wèn)運(yùn)動(dòng)與健身NSHealthUpdateUsageDescriptionApp需要您的同意,才能訪問(wèn)健康更新NSHealthShareUsageDescriptionApp需要您的同意,才能訪問(wèn)健康分享NSBluetoothPeripheralUsageDescriptionApp需要您的同意,才能訪問(wèn)藍(lán)牙NSAppleMusicUsageDescriptionApp需要您的同意,才能訪問(wèn)媒體資料庫(kù)
34、控件設(shè)置邊框
_describText.layer.borderColor = [[UIColor colorWithRed:215.0 / 255.0 green:215.0 / 255.0 blue:215.0 / 255.0 alpha:1] CGColor];
_describText.layer.borderWidth = 1.0;
_describText.layer.cornerRadius = 4.0;
_describText.clipsToBounds = YES;
35、//隱藏電池條的方法
-(BOOL)prefersStatusBarHidden{
return YES;
}
36、延時(shí)操作
[NSThread sleepForTimeInterval:2];
方法二:
[self performSelector:@selector(delayMethod) withObject:nil afterDelay:1.5];
37、系統(tǒng)風(fēng)火輪:
[UIApplication sharedApplication].networkActivityIndicatorVisible = NO; //隱藏
38、//didSelectRowAtIndexPath:方法里面找到當(dāng)前的Cell
AssessMentCell * cell = [tableView cellForRowAtIndexPath:indexPath];
39、navigation上返回按鈕的顏色以及返回按鈕后面文字去掉
//返回按鈕后邊文字去掉
[[UIBarButtonItem appearance] setBackButtonTitlePositionAdjustment:UIOffsetMake(0, -60)
forBarMetrics:UIBarMetricsDefault];
//設(shè)置左上角返回按鈕的顏色
self.navigationController.navigationBar.tintColor = UIColorFromRGB(0x666666);
40、lineBreakMode //設(shè)置文字過(guò)長(zhǎng)時(shí)的顯示格式
label.lineBreakMode = NSLineBreakByCharWrapping;以字符為顯示單位顯
示,后面部分省略不顯示。
label.lineBreakMode = NSLineBreakByClipping;剪切與文本寬度相同的內(nèi)
容長(zhǎng)度,后半部分被刪除。
label.lineBreakMode = NSLineBreakByTruncatingHead;前面部分文字
以……方式省略,顯示尾部文字內(nèi)容。
label.lineBreakMode = NSLineBreakByTruncatingMiddle;中間的內(nèi)容
以……方式省略,顯示頭尾的文字內(nèi)容。
label.lineBreakMode = NSLineBreakByTruncatingTail;結(jié)尾部分的內(nèi)容
以……方式省略,顯示頭的文字內(nèi)容。
label.lineBreakMode = NSLineBreakByWordWrapping;以單詞為顯示單位顯
示,后面部分省略不顯示。
在iOS 13中,蘋果終于推出了多攝像頭同步開(kāi)啟支持,允許應(yīng)用程序在iPhone或iPad上同時(shí)捕獲來(lái)自多個(gè)麥克風(fēng)和攝像頭的照片、視頻、音頻,元數(shù)據(jù)和深度信息。
自從OS X Lion以來(lái),蘋果長(zhǎng)期一直支持macOS上的多攝像頭捕獲,但到目前為止,硬件限制使其無(wú)法推出適用于iPhone和iPad的API。
iOS 13中的新功能和API將允許開(kāi)發(fā)人員提供同時(shí)從前置攝像頭和后置攝像頭傳輸視頻、照片或音頻的應(yīng)用程序。
iOS 13多攝像頭支持w/ AVCapture
在WWDC19期間推出新功能時(shí),蘋果演示了一個(gè)畫(huà)中畫(huà)視頻錄制應(yīng)用,該應(yīng)用從前置攝像頭錄制,同時(shí)還可以從主攝像頭錄制。
該演示應(yīng)用程序還啟用了視頻錄制功能,以及在照片應(yīng)用播放期間即時(shí)交換兩個(gè)攝像頭的功能。該功能還可以讓開(kāi)發(fā)人員控制雙TrueDepth攝像頭,包括后視寬角鏡頭或后視長(zhǎng)焦鏡頭的單獨(dú)視頻流。
iOS 13支持新的多攝像頭功能,僅適用于較新的硬件,包括iPhone XS、iPhone XS Max、iPhone XR和iPad Pro。
蘋果列出了許多支持多攝像頭捕獲的格式(如上圖所示),開(kāi)發(fā)人員會(huì)注意到它會(huì)對(duì)相機(jī)的正常功能施加一些人為限制。
由于移動(dòng)設(shè)備的功率限制,與Mac不同,iPhone和iPad將僅限于單個(gè)多攝像頭會(huì)話,這意味著你無(wú)法同時(shí)在多個(gè)應(yīng)用中開(kāi)啟多個(gè)攝像頭,或者使用多個(gè)攝像頭進(jìn)行多個(gè)會(huì)話。還將有各種支持的設(shè)備組合,指示在某些設(shè)備上支持哪些攝像機(jī)的捕獲組合。
蘋果本身并沒(méi)有在iOS 13相機(jī)應(yīng)用程序中使用任何新的多攝像頭功能,但我們認(rèn)為它現(xiàn)在正在出現(xiàn),因?yàn)樗皆贏VCapture中推出了支持。
Semantic Segmentation Mattes(語(yǔ)義分割蒙版)
iOS 13中相機(jī)捕捉的新功能還有語(yǔ)義分割蒙版。在iOS 12中,蘋果在內(nèi)部使用了Portrait Effects Matte為人像模式照片設(shè)置內(nèi)容,將主體與背景分開(kāi)。在iOS 13中,蘋果推出了所謂的Semantic Segmentation Mattes來(lái)識(shí)別皮膚、頭發(fā)和牙齒,并通過(guò)API進(jìn)一步改進(jìn)這些信息,供開(kāi)發(fā)人員使用。
在WWDC會(huì)議上,蘋果展示了新技術(shù)的演示應(yīng)用程序,允許將照片中的主體與背景分離,并將頭發(fā)、皮膚和牙齒隔離,以輕松添加效果,包括面部涂料和頭發(fā)顏色變化(如上圖)。
開(kāi)發(fā)人員可以在蘋果的網(wǎng)站上了解有關(guān)多攝像頭支持和語(yǔ)義分段的更多信息,它還提供了演示應(yīng)用程序的示例代碼。
Camera+ ($3)
即使更新到最新版本的 iOS 系統(tǒng),蘋果原生的相機(jī)軟件也是比較弱雞的。還好我們有 Camera+,可以調(diào)節(jié)曝光以及其他復(fù)雜的操作,比如連續(xù)閃光,正面閃光,觸摸對(duì)焦調(diào)整,6 倍數(shù)碼變焦,定時(shí)器和預(yù)設(shè)濾鏡。而且軟件的操作界面非常友好,操作非常便捷,隨時(shí)可以將照片上傳到 snapping 或者其他社交媒體平臺(tái)。
ProCamera ($5)
在 iOS 8 發(fā)布的時(shí)候,開(kāi)發(fā)者 Cocologics 決定放棄更新現(xiàn)有的 ProCamera 軟件,然后重做一款全新的攝影軟件。這個(gè)全新版本的 ProCamera——現(xiàn)已經(jīng)針對(duì) iOS10 進(jìn)行優(yōu)化——操作界面仍舊簡(jiǎn)單快捷,但卻可以實(shí)現(xiàn)非常復(fù)雜的操作:設(shè)置曝光時(shí)間,色調(diào),ISO 感光度等。除了強(qiáng)大的曝光控制和 70 多種獨(dú)特的濾鏡特效,ProCamera 甚至還具有夜間照相機(jī)和全分辨率預(yù)覽功能。
Darkroom
因?yàn)槿狈ο嚓P(guān)的美學(xué)基礎(chǔ),所以這個(gè)軟件的名字可能會(huì)被大家誤解。但是 Darkroom 確實(shí)像它的名字一樣,通過(guò)設(shè)計(jì)一個(gè)黑色的界面,讓你的照片看起來(lái)更加耀眼。這款軟件和 Lightroom 比較類似,可以調(diào)節(jié)色相、飽和度和亮度(HSL)或者調(diào)整曲線。除此以外還整合一些其他軟件的功能,比如集成了 VSCO 的所有濾鏡。這款軟件 iOS 應(yīng)用商店的評(píng)分是 4.9 分,所以沒(méi)啥可以猶豫的了——而且它還是免費(fèi)的喲。
Halide ($5)
如果你是一名初學(xué)者,想一點(diǎn)點(diǎn)從自動(dòng)模式進(jìn)階為手動(dòng)模式,那么 Halide 就是你的不二之選了。自動(dòng)模式可以輕松捕捉精彩瞬間,而峰值對(duì)焦工具,支持 RAW 格式照片可以幫助用戶發(fā)揮極致的創(chuàng)意,同時(shí)軟件的操作界面簡(jiǎn)單友好。Halide 甚至支持人像特效,功能媲美最新款 iPhone 的肖像模式。
Pro HDR X ($2)
ProHDR X 大概是所有 HDR 特效軟件里面最全能的,沒(méi)有之一。與之前版本不同,ProHDR X 重新設(shè)計(jì)了 UI 界面,降低操作門檻,讓普通攝影愛(ài)好者也可以操作自如。ProHDR X 支持更為廣泛的曝光調(diào)整控制以及色調(diào)匹配,而且可以將單反相機(jī)拍攝的照片(最高支持 2400 萬(wàn)像素)導(dǎo)入到軟件的內(nèi)置照片庫(kù)。同時(shí) ProHDR X 也提供了大量?jī)?yōu)秀的預(yù)設(shè)可供選擇,如果需要,甚至可以進(jìn)行數(shù)字縮放、裁剪、字幕和設(shè)置自拍定時(shí)器等操作。
Adobe Photoshop Express
說(shuō)到照片后期處理,沒(méi)人敢說(shuō)比 Adobe 更專業(yè)。盡管他們的桌面版本軟件享譽(yù)世界,但是手機(jī)上移動(dòng)版本的操作種類比其他同類軟件少了很多。但是這絲毫不影響 Adobe Photoshop Express 仍舊是市面上最佳的后期軟件之一。軟件支持常用的 Photoshop 功能如圖層、選擇工具和調(diào)整、添加文本、效果應(yīng)用以及混合圖像等。不過(guò),很多功能只有在付費(fèi)后才能使用。所以如果選擇了 Adobe Photoshop Express,那么就要做好錢包出血的準(zhǔn)備咯~
Adobe Lightroom
盡管 Adobe 公司的很多軟件只支持較新版本的 iPhone,但這絲毫不能影響其在我們軟件名單上舉足輕重的地位,尤其是那些在旅途中對(duì)照片進(jìn)行后期處理的攝影師們。Lightroom 會(huì)自動(dòng)與桌面設(shè)備同步圖像——無(wú)論是智能手機(jī)拍攝的圖像還是單反拍攝的原始圖像,都可以靈活使用各種熟悉的工具快速編輯、美化并且分享。在 iOS10 系統(tǒng)中,Lightroom 已經(jīng)開(kāi)始支持 RAW 格式的導(dǎo)入和編輯。
如果只字不提濾鏡之王,我們整理的軟件名單估計(jì)就沒(méi)啥說(shuō)服力了。或許有數(shù)十種軟件可以實(shí)現(xiàn)相同的功能,但是 Instagram 始終保持最龐大的用戶群體。Instagram 不僅提供了一系列經(jīng)典濾鏡可供使用,同時(shí)對(duì)照片進(jìn)行評(píng)論、點(diǎn)贊或者分享,甚至可以直接將照片發(fā)給特定的好友。
Pixlr
網(wǎng)頁(yè)版本的 Pixlr 一直都是最受大家喜愛(ài)的照片后期工具,好消息是 Pixlr 已經(jīng)推出了手機(jī)版本軟件。在調(diào)整照片大小時(shí),Pixlr 支持從四個(gè)預(yù)先定義的尺寸中進(jìn)行選擇,并可進(jìn)行裁剪、旋轉(zhuǎn)、風(fēng)格化并進(jìn)行照片分享。燈光和疊加效果甚至可以改善心情,而一鍵調(diào)整則可以快速自動(dòng)地完成后期工作。
Facetune 2
不是所有人都非常上相,況且很多時(shí)候你在 snap 上傳你和你朋友照片的時(shí)候,和本人也是有區(qū)別的。通過(guò) Facetune 2,你可以將任何「見(jiàn)光死」的自拍變成萬(wàn)人迷。軟件支持多種美化,比如牙齒美白、去除污點(diǎn)和顏色校正,使面孔看起來(lái)非常完美,以便于上傳到社交網(wǎng)絡(luò)。最厲害的是,F(xiàn)acetune 2 甚至可以改變眼睛或者頭發(fā)的顏色。
Photo Editor by Aviary
如果想要一個(gè)好用而且免費(fèi)的后期軟件,推薦使用 Photo Editor by Aviary。被 Adobe 公司收購(gòu)后,軟件得以強(qiáng)化很多復(fù)雜功能,并且操作界面更加友好。Photo Editor by Aviary 支持在線購(gòu)買濾鏡預(yù)設(shè),而且有大量預(yù)設(shè)和其他資源可供選擇。和 Facetune 類似,Aviary 也支持消除紅眼、增白牙齒等功能。除此以外,還支持增加文字、替換顏色和社交網(wǎng)絡(luò)。但是需要注意的是,Photo Editor by Aviary 已經(jīng)超過(guò) 11 個(gè)月沒(méi)有更新了,所以不支持近期發(fā)布手機(jī)的最新功能。同時(shí)未來(lái)也很難看到 Photo Editor by Aviary 的重大更新了。
Horizon Camera
我們一般情況下從不豎著手機(jī)拍攝視頻。但是萬(wàn)一你的豬隊(duì)友沒(méi)有橫向拍視頻,Horizon Camera 就可以用來(lái)救場(chǎng)了。Horizon 可以強(qiáng)制手機(jī)只在橫向時(shí)拍攝視頻,即使旋轉(zhuǎn)手機(jī)也可以保持水平角度不變。Horizon 支持 60 和 120 幀/秒的慢速模式,并允許以自定分辨率進(jìn)行錄制——當(dāng)然,前提是在系統(tǒng)允許范圍內(nèi)。
該框架框架包含視頻相關(guān)的APIs和音頻相關(guān)的APIs。
針對(duì)音頻及視頻,其主要提供的功能可以歸納為4各方面:
1)、Capture
音頻、視頻、圖像媒體的捕捉,并輸出我們可用的數(shù)據(jù)對(duì)象的過(guò)程。
2)、Edit
針對(duì)現(xiàn)有的媒體片段(音頻片段或視頻片段),重新創(chuàng)建Assets,重新加工、生成新的媒體片段。例如,Reading, Writing, Reencoding Assets, Thumbnails
3)、Export
提供導(dǎo)出音視頻的API。例如,修改文件格式、消減時(shí)長(zhǎng)等。
4)、Presentation
例如,播放、音視頻的預(yù)覽
設(shè)備的輸入源主要包括:麥克風(fēng)(Microphone),攝像頭(Camera),屏幕等
輸入源一般包括:AVCaptureVideoPreviewLayer,AVCaptureAudioPreviewOutput,文件、Raw Buffer等。
從一個(gè)設(shè)備,例如照相機(jī)或者麥克風(fēng)管理捕獲,組合對(duì)象來(lái)表示輸入和輸出,并使用 AVCaptureSession 的實(shí)例來(lái)協(xié)調(diào)它們之間的數(shù)據(jù)流。
一個(gè)簡(jiǎn)單的會(huì)話協(xié)調(diào):
AVCapture Session作為整個(gè)Capture的核心,不斷從輸入源獲取數(shù)據(jù),然后分發(fā)給各個(gè)輸出源,從而完成一次簡(jiǎn)單的會(huì)話。
AVCaptureSession參數(shù)配置
開(kāi)始會(huì)話
結(jié)束會(huì)話
然而,很多情況下,需要考慮多個(gè)輸入源是如何被表示以及如何連接到輸出。
輸入源有自己的硬件參數(shù)可以設(shè)置流控,輸出源作為一個(gè)被動(dòng)接受對(duì)象,它并沒(méi)有太多流控設(shè)置,所以蘋果巧妙的引入AVCaptureConnections。每個(gè)Output與Session建立連接后,都會(huì)分配一個(gè)默認(rèn)的AVCpatureConnection。
AVCaptureConnections就是Session和Output中間的控制節(jié)點(diǎn)。很多實(shí)時(shí)數(shù)據(jù),也都是從connection得到的。
輸入設(shè)備的配置
輸出的配置
接收輸出資源
1)、視頻
2)、照片輸出
判斷相機(jī)的
AVAuthorizationStatus status = [AVCaptureDevice authorizationStatusForMediaType:AVMediaTypeVideo];
if (status == AVAuthorizationStatusDenied || status == AVAuthorizationStatusRestricted) {
return NO;
} else {
return YES;
}
判斷相冊(cè)的
ALAuthorizationStatus status = [ALAssetsLibrary authorizationStatus];
if (status == kCLAuthorizationStatusDenied || kCLAuthorizationStatusRestricted) {
return NO;
} else {
return YES;
}
網(wǎng)站欄目:ios相機(jī)開(kāi)發(fā),ios專業(yè)相機(jī)
文章網(wǎng)址:http://m.kartarina.com/article16/dsespgg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)網(wǎng)站建設(shè)、響應(yīng)式網(wǎng)站、網(wǎng)站設(shè)計(jì)、軟件開(kāi)發(fā)、做網(wǎng)站、全網(wǎng)營(yíng)銷推廣
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)