LEADTOOLS for iOS/OS X入門使用教程
使用LEADTOOLS for iOS/OS X時(shí),根據(jù)以下步驟可以創(chuàng)建一個(gè)運(yùn)行于iPhone/ iPad模擬器或iOS設(shè)備上的iOS應(yīng)用程序演示。
1、啟動(dòng)Xcode應(yīng)用程序。可在任務(wù)欄上找到該圖標(biāo),如下所示:

2、如果任務(wù)欄上沒有Xcode應(yīng)用程序圖標(biāo),從任務(wù)欄中選擇 "Lanuchpad" ,然后點(diǎn)擊 "Developer" 圖標(biāo),即可啟動(dòng)Xcode。或者你也可以根據(jù)MAC跟蹤器右上角的 "Spotlight",搜索Xcode應(yīng)用程序。

3、在Xcode啟動(dòng)對(duì)話框中單擊Create a new Xcode project按鈕。
4、點(diǎn)擊該按鈕,打開Choose a template for your new project對(duì)話框。通過該對(duì)話框來指定項(xiàng)目類型。在 "iOS"模板中選擇 "Application",然后選擇"Single View Application",接著點(diǎn)擊Next。

5、在Choose options for your new project中:在對(duì)話框中,你可以指定項(xiàng)目名稱和選項(xiàng),然后點(diǎn)擊Next。

6、此時(shí),會(huì)出現(xiàn)一個(gè)對(duì)話框,用于指定項(xiàng)目保存的位置。指定位置,然后單擊Finish按鈕來創(chuàng)建項(xiàng)目。
7、按Command+ B生成項(xiàng)目,或者在Xcode菜單中選擇Product -> Build。
8、在Xcode項(xiàng)目瀏覽器中,選擇并展開 "Frameworks"文件夾,從設(shè)備/模擬器圖片專輯加載圖像。用鼠標(biāo)右鍵單擊它并選擇將文件添加到"ViewerTest"...

9、使用文件瀏覽器對(duì)話框,找到所提取的iOS框架,然后選擇以下框架,并點(diǎn)擊Add:
- Leadtools.framework
- Leadtools.Kernel.framework
- Leadtools.Controls.framework
- Leadtools.Converters.framework
- Leadtools.ImageProcessing.Utilities.framework
- Leadtools.ImageProcessing.Color.framework
10、在項(xiàng)目導(dǎo)航中,展開"Supporting Files" 文件夾,然后點(diǎn)擊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、在項(xiàng)目導(dǎo)航器中點(diǎn)擊ViewerController_iPhone.xib,添加一個(gè)用戶接口至項(xiàng)目。
12、通過在Library Pane底部的Find Text Box控件中寫入控件名稱,可添加按鈕和查看器控件。選中Xcode應(yīng)用程序的右下角,如下圖所示:

例如:寫入"UIButton" 或 "UIView" 并將其添加至界面生成器。

13、在Identity Inspector面板中,通過將"Class" 名稱改成"LTImageViewer",從而將 "UIView" 的基本類型改成"LTImageViewer"控件,如下所示:

14、將出口連接添加至界面生成器對(duì)象的"ViewController"類。在 Xcode IDE菜單中選擇View -> Assistant Editor -> Show Assistant Editor以展示助理編輯Assistant Editor。
15、選擇從界面生成器中選擇瀏覽器控件。將出現(xiàn)一個(gè)彈出式對(duì)話框,輸入變量 "imageViewer",然后單擊Connect按鈕。

16、重復(fù)以上步驟,添加Load, Flip 和Invert行為按鈕。

17、在項(xiàng)目導(dǎo)航器,面板中選擇項(xiàng)目根目標(biāo),然后選擇 "Build Settings"選項(xiàng)卡,可將兩個(gè)連接器選項(xiàng) "-lstdc++ -ObjC" 添加至項(xiàng)目生成設(shè)置。在搜索編輯框中,輸入other linker flags過濾設(shè)置,從而只顯示字段。點(diǎn)擊它,然后添加設(shè)置"-lstdc++ -ObjC"。

18、編譯該項(xiàng)目。
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、運(yùn)行demo。
22、點(diǎn)擊Load,從照片庫中選擇一個(gè)圖像。圖像預(yù)覽效果如下:
