Camera


Contents

Camera 는 HSP 에서 기본으로 제공하는 API로 별도의 설정 없이 사용 가능하며 사진을 촬영하거나 갤러리에서 사진을 불러오는 기능을 제공한다.


takePicture

사진 촬영 기능 호출은 다음과 같다.

Example

///////////////
// 3.10.18 이상
///////////////
self.deviceAPI = DAPCamera()
let params = [50, -1, -1, "camera", "uri"] as [Any]
self.deviceAPI!.execute(withActionName: "takepicture", params: params, completion: { (dict) in
   guard let resultDict = dict else {
       return
    }
   
}, failure: { (resultError) in
   guard let error = resultError else {
       return
    }
   
})

///////////////
// 3.10.18 이하
///////////////
self.deviceAPI = DAPCamera()
let infoParam = DAPCameraTakePictureParam()
infoParam.quality = 50
infoParam.width = -1
infoParam.height = -1
infoParam.sourceType = Int32(PHOTO_SOURCE_TYPE_CAMERA.rawValue)
infoParam.destType = Int32(PHOTO_TYPE_URI.rawValue)

self.deviceAPI!.execute(with:infoParam, completion: { (dict) in
   guard let resultDict = dict else {
       return
    }
   
}, failure: { (resultError) in
   guard let error = resultError else {
       return
    }
   
})
///////////////
// 3.10.18 이상
///////////////
DAPDeviceAPI *deviceAPI = [DAPCamera new];
DAPCameraTakePictureParam *infoParam = [DAPCameraTakePictureParam new];
infoParam.quality = 50;
infoParam.width = 120;
infoParam.height = 160;
infoParam.sourceType = PHOTO_SOURCE_TYPE_CAMERA;
infoParam.destType = PHOTO_TYPE_URI;
[deviceAPI executeWithParam:infoParam completion:^(NSDictionary *resultDict) {
   NSString *deviceResult = [resultDict objectForKey:kDeviceResult];
    ResultData *resultData = [ResultData resultDataWithType:@"imageResultDlg" resultObject:deviceResult];
    [self showSuccessDlgWithResultData:resultData];
} failure:^(NSError *error) {
    [self showErrorDlgWithError:error];
}];

///////////////
// 3.10.18 이하
///////////////
DAPDeviceAPI *deviceAPI = [DAPCamera new];

NSArray *params = [NSArray arrayWithObjects:
                   [NSNumber numberWithInteger:50],
                   [NSNumber numberWithInteger:120],
                   [NSNumber numberWithInteger:160],
                  @"camera",
                  @"uri",
                  nil];

[deviceAPI executeWithActionName:@"takePicture" params:params completion:^(NSDictionary *resultDict) {
    NSLog(@"%s %d\nresultDict %@", __PRETTY_FUNCTION__, __LINE__, resultDict);
} failure:^(NSError *error) {
    NSLog(@"%s %d\nerror %@", __PRETTY_FUNCTION__, __LINE__, error);
}];

 

이미지 선택 기능 호출은 다음과 같다.

Example

///////////////
// 3.10.18 이상
///////////////
self.deviceAPI = DAPCamera()
let infoParam = DAPCameraTakePictureParam()
infoParam.quality = 50
infoParam.width = -1
infoParam.height = -1
infoParam.sourceType = Int32(PHOTO_SOURCE_TYPE_LIBRARY.rawValue)
infoParam.destType = Int32(PHOTO_TYPE_URI.rawValue)

self.deviceAPI!.execute(with:infoParam, completion: { (dict) in
   guard let resultDict = dict else {
       return
    }
   
}, failure: { (resultError) in
   guard let error = resultError else {
       return
    }
})


///////////////
// 3.10.18 이하
///////////////
self.deviceAPI = DAPCamera()
let params = [50, -1, -1, "library", "uri"] as [Any]
self.deviceAPI!.execute(withActionName: "takepicture", params: params, completion: { (dict) in
   guard let resultDict = dict else {
       return
    }
   
   let deviceResult = resultDict[kDeviceResult] as! NSObject
   let resultData = ResultData(type: "imageResultDlg", resultObject: deviceResult)
   self.showSuccessDlg(resultData: resultData)
   
}, failure: { (resultError) in
   guard let error = resultError else {
       return
    }
   
   self.showErrorDlg(error: error)
})

///////////////
// 3.10.18 이상
///////////////
DAPDeviceAPI *deviceAPI = [DAPCamera new];
DAPCameraTakePictureParam *infoParam = [DAPCameraTakePictureParam new];
infoParam.quality = 50;
infoParam.width = 120;
infoParam.height = 160;
infoParam.sourceType = PHOTO_SOURCE_TYPE_LIBRARY;
infoParam.destType = PHOTO_TYPE_URI;
[deviceAPI executeWithParam:infoParam completion:^(NSDictionary *resultDict) {
   NSString *deviceResult = [resultDict objectForKey:kDeviceResult];
} failure:^(NSError *error) {
}];

///////////////
// 3.10.18 이하
///////////////
DAPDeviceAPI *deviceAPI = [DAPCamera new];

NSArray *params = [NSArray arrayWithObjects:
                   [NSNumber numberWithInteger:50],
                   [NSNumber numberWithInteger:120],
                   [NSNumber numberWithInteger:160],
                  @"library",
                  @"uri",
                  nil];

[deviceAPI executeWithActionName:@"takepicture" params:params completion:^(NSDictionary *resultDict) {
    NSLog(@"%s %d\nresultDict %@", __PRETTY_FUNCTION__, __LINE__, resultDict);
} failure:^(NSError *error) {
    NSLog(@"%s %d\nerror %@", __PRETTY_FUNCTION__, __LINE__, error);
}];

 

Parameters

필드설명
첫번째 인자사진 품질 (범위 0~100)
두번째 인자가로크기 픽셀 (-1 기입시 원본 크기)
세번째 인자세로크기 픽셀 (-1 기입시 원본 크기)
네번째 인자기능 타입 (0 : 라이브러리, 1 : 카메라)
다섯번째 인자리턴 타입 (uri : 경로, data : 데이터)