LEADTOOLS for iOS/OS X入門使用教程
使用LEADTOOLS for iOS/OS X時,根據(jù)以下步驟可以創(chuàng)建一個運行于iPhone/ iPad模擬器或iOS設(shè)備上的iOS應(yīng)用程序演示。
1、啟動Xcode應(yīng)用程序。可在任務(wù)欄上找到該圖標,如下所示:
2、如果任務(wù)欄上沒有Xcode應(yīng)用程序圖標,從任務(wù)欄中選擇 "Lanuchpad" ,然后點擊 "Developer" 圖標,即可啟動Xcode?;蛘吣阋部梢愿鶕?jù)MAC跟蹤器右上角的 "Spotlight",搜索Xcode應(yīng)用程序。
3、在Xcode啟動對話框中單擊Create a new Xcode project按鈕。
4、點擊該按鈕,打開Choose a template for your new project對話框。通過該對話框來指定項目類型。在 "iOS"模板中選擇 "Application",然后選擇"Single View Application",接著點擊Next。
5、在Choose options for your new project中:在對話框中,你可以指定項目名稱和選項,然后點擊Next。
6、此時,會出現(xiàn)一個對話框,用于指定項目保存的位置。指定位置,然后單擊Finish按鈕來創(chuàng)建項目。
7、按Command+ B生成項目,或者在Xcode菜單中選擇Product -> Build。
8、在Xcode項目瀏覽器中,選擇并展開 "Frameworks"文件夾,從設(shè)備/模擬器圖片專輯加載圖像。用鼠標右鍵單擊它并選擇將文件添加到"ViewerTest"...
9、使用文件瀏覽器對話框,找到所提取的iOS框架,然后選擇以下框架,并點擊Add:
- Leadtools.framework
- Leadtools.Kernel.framework
- Leadtools.Controls.framework
- Leadtools.Converters.framework
- Leadtools.ImageProcessing.Utilities.framework
- Leadtools.ImageProcessing.Color.framework
10、在項目導(dǎo)航中,展開"Supporting Files" 文件夾,然后點擊ViewerTest-Prefix.pch。添加以下#import語句:
- #import <Leadtools/Leadtools.h>
- #import <Leadtools.Controls/Leadtools.Controls.h>
- #import <Leadtools.Converters/Leadtools.Converters.h>
- #import <Leadtools.ImageProcessing.Color/Leadtools.ImageProcessing.Color.h>
11、在項目導(dǎo)航器中點擊ViewerController_iPhone.xib,添加一個用戶接口至項目。
12、通過在Library Pane底部的Find Text Box控件中寫入控件名稱,可添加按鈕和查看器控件。選中Xcode應(yīng)用程序的右下角,如下圖所示:
例如:寫入"UIButton" 或 "UIView" 并將其添加至界面生成器。
13、在Identity Inspector面板中,通過將"Class" 名稱改成"LTImageViewer",從而將 "UIView" 的基本類型改成"LTImageViewer"控件,如下所示:
14、將出口連接添加至界面生成器對象的"ViewController"類。在 Xcode IDE菜單中選擇View -> Assistant Editor -> Show Assistant Editor以展示助理編輯Assistant Editor。
15、選擇從界面生成器中選擇瀏覽器控件。將出現(xiàn)一個彈出式對話框,輸入變量 "imageViewer",然后單擊Connect按鈕。
16、重復(fù)以上步驟,添加Load, Flip 和Invert行為按鈕。
17、在項目導(dǎo)航器,面板中選擇項目根目標,然后選擇 "Build Settings"選項卡,可將兩個連接器選項 "-lstdc++ -ObjC" 添加至項目生成設(shè)置。在搜索編輯框中,輸入other linker flags過濾設(shè)置,從而只顯示字段。點擊它,然后添加設(shè)置"-lstdc++ -ObjC"。
18、編譯該項目。
19、打開 "ViewController.h"文件,將以下代碼作為圖像選擇器代理添加至接口聲明:
@interface ViewController : UIViewController<UIImagePickerControllerDelegate, UINavigationControllerDelegate> @property (strong, nonatomic) IBOutlet LTImageViewer *imageViewer; - (IBAction)loadImageFromAlbum:(id)sender; - (IBAction)flipImage:(id)sender; - (IBAction)invertImage:(id)sender; - (void)showError:(NSError*)error; @end
20、打開執(zhí)行文件,添加以下代碼:
-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info { self.imageViewer.image = [info objectForKey:UIImagePickerControllerOriginalImage]; [self dismissViewControllerAnimated:NO completion:nil]; } - (void)showError:(NSError*)error { NSString* str; if(error != nil) str = [NSString stringWithFormat:@"@\nReason@\nDescription: @\nCoded\n", @"Error", [error localizedDescription], [error localizedFailureReason], [error code]]; UIAlertView* alert = [[UIAlertView alloc] initWithTitle:@"Error" message:str delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil]; [alert show]; } - (IBAction)loadImageFromAlbum:(id)sender { UIImagePickerController* imagePicker = [[UIImagePickerController alloc] init]; imagePicker.allowsEditing = NO; imagePicker.delegate = self; if(![UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypePhotoLibrary]) { [[[UIAlertView alloc] initWithTitle:@"Warning" message:@"your device does not allow using PhotoLibrary" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil] show]; return; } imagePicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary; [self presentViewController:imagePicker animated:YES completion:nil]; } - (IBAction)flipImage:(id)sender { NSError* error = nil; LTRasterImage* rasterImage = [LTRasterImageConverter convertFromImage:self.imageViewer.image options:LTConvertFromImageOptions_None error:&error]; if(rasterImage == nil && error != nil) // error occurred { [self showError:error]; return; } LTFlipCommand* command = [[LTFlipCommand alloc]initWithHorizontal:NO]; BOOL ret = [command run:rasterImage error:&error]; if(ret == NO && error != nil) // error occurred { [self showError:error]; return; } // Put the updated image back into the viewer [self.imageViewer setRasterImage:rasterImage]; } - (IBAction)invertImage:(id)sender { NSError* error = nil; LTRasterImage* rasterImage = [LTRasterImageConverter convertFromImage:self.imageViewer.image options:LTConvertFromImageOptions_None error:&error]; if(rasterImage == nil && error != nil) // error occurred { [self showError:error]; return; } LTInvertCommand* command = [[LTInvertCommand alloc]init]; BOOL ret = [command run:rasterImage error:&error]; if(ret == NO && error != nil) // error occurred { [self showError:error]; return; } // Put the updated image back into the viewer [self.imageViewer setRasterImage:rasterImage]; }
21、運行demo。
22、點擊Load,從照片庫中選擇一個圖像。圖像預(yù)覽效果如下: