CreditCard API


Summary

OCR 인식 기능을 사용하기 위한 필수적인 API로 구성되어 있습니다.

ImageRecognizer.RecognitionListener


/**
* OCR 결과 리스너 
* 인식에 성공하면 인식결과 정보를 넘겨줌 */ private ImageRecognizer.RecognitionListener mRecognitionListener = new ImageRecognizer.RecognitionListener() { /** * 인식에 성공하여 결과값 전달 * @param result 인식 결과 데이터 */ @Override public void onFinish(ImageRecognizer.Result result) { } /** * 인식에 실패 * @param code 오류코드 * {@link ImageRecognizer#ERROR_CODE_FILE_NOT_FOUND}: ROM 파일을 찾지 못함 * {@link ImageRecognizer#ERROR_CODE_LICENSE_CHECK_FAILED}: 라이선스 만료 * {@link ImageRecognizer#ERROR_CODE_IMAGE_BLUR}: 이미지가 너무 흐림 */ @Override public void onError(int code) { } }; public class ImageRecognizer.Result { String cardNumber; //카드 번호 String validYear; //유효 기간 (년) String validMonth; //유효 기간 (월) boolean isValidCardNumber //카드 번호 유효성 여부 Bitmap image; //인식에 사용된 카드 이미지 }

Functions List

// 인식엔진 생성자
ImageRecognizer(Context context)
// 인식엔진 생성자(결과 암호화)
ImageRecognizer(Context context, byte[] encryptKey, byte[] encryptIV)
// 입력된 이미지를 인식하고 그 결과를 리스너로 반환
void startRecognition(int[] array, int width, int height, float blurThreshold, ImageRecognizer.RecognitionListener recognitionListener)
// 입력된 카메라 프리뷰 이미지를 인식하고 그 결과를 리스너로 반환
void startRecognitionPreview(byte[] preview, int previewWidth, int previewHeight, Rect guideRect, int orientation, float blurThreshold, ImageRecognizer.RecognitionListener recognitionListener)
// 인식기 메모리 해제
void release()
ImageRecognizer

인식 된 카드번호를 암호화 하지 않는 기본 생성자

Parameters
# Name Description Type
[in] context Application context Context
Returns

-

Example
ImageRecognizer mImageRecognizer = new ImageRecognizer(getApplicationContext());
ImageRecognizer

인식 된 카드번호를 암호화하는 생성자

Parameters
# Name Description Type
[in] context App context Context
[in] encryptKey 인식결과 암호화를 위한 키 byte[]
[in] encryptIV 인식결과 함호화를 위한 초기 벡터 byte[]
Returns

-

Example
byte[] mEncryptKey = {'s', 'e', 'l', 'v', 'a', 's', 'a', 'i' ...};
byte[] mEncryptIV = {'s', 'e', 'l', 'v', 'a', 's', 'a', 'i' ...};
ImageRecognizer mImageRecognizer = new ImageRecognizer(getApplicationContext(), mEncryptKey, mEncryptIV);
startRecognition

입력된 이미지를 인식하고 그 결과를 리스너로 반환

Parameters
# Name Description Type
[in] array 촬영 이미지 int[]
[in] width 이미지 가로 길이 int
[in] height 이미지 세로 길이 int
[in] blurThreshold 인식을 시도하지 않는 이미지 흐림 정도 값 0(깨끗함)~1(흐림) float
[in] recognitionListener 인식 결과를 전달 받을 리스너 RecognitionListener
Returns

-

Example
ImageRecognizer mImageRecognizer = new ImageRecognizer(getApplicationContext());
Bitmap inputImage = BitmapFactory.decodeFile("/path/to/image.jpg");
ImageRecognizer.RecognitionListener mRecognitionListener = new ImageRecognizer.RecognitionListener() {...);
mImageRecognizer.startRecognition(inputImage, mRecognitionListener);
startRTRRecognition

입력된 카메라 프리뷰 이미지를 인식하고 그 결과를 리스너로 반환

Parameters
# Name Description Type
[in] preview 카메라 프리뷰 이미지 데이터 byte[]
[in] previewWidth 프리뷰 이미지 가로 길이 int
[in] previewHeight 프리뷰 이미지 세로 길이 int
[in] guideRect 가이드 Rect Rect
[in] cameraOrientation 카메라 회전 값 int
[in] blurThreshold 인식을 시도하지 않는 이미지 흐림 정도 값 0(깨끗함)~1(흐림) float
[in] recognitionListener 결과 반환 리스너 RecognitionListener
Returns

-

Example
ImageRecognizer mImageRecognizer = new ImageRecognizer(getApplicationContext());
ImageRecognizer.RecognitionListener mRecognitionListener = new ImageRecognizer.RecognitionListener() {...);
mImageRecognizer.startRTRRecognition(previewData, previewWidth, previewHeight, mGuideRect, mCameraOrientation, mRecognitionListener);
getBlurValue

프리뷰 영상에서 초점이 흐림 정도를 측정

Parameters
# Name Description Type
[in] previewData 프리뷰 영상 byte[]
[in] previewWidth 프리뷰 너비 int
[in] previewHeight 프리뷰 높이 int
Returns

0~1 사이의 값 또는 NaN.
1 이면 매우 흐림

Example
float blurValue = mImageRecognizer.getBlurValue(data, previewSize.width, previewSize.height);
decrypt

입력된 String 을 key 와 iv 를 사용하여 복호화

Parameters
# Name Description Type
[in] text 암호화된 String String
[in] key 암호화에 사용한 key byte[]
[in] iv 암호화에 사용한 kv byte[]
Returns

복호화된 String

Example
byte[] mEncryptKey = {'s', 'e', 'l', 'v', 'a', 's', 'a', 'i' ...};
byte[] mEncryptIV = {'s', 'e', 'l', 'v', 'a', 's', 'a', 'i' ...};
String decodedText = ImageRecognizer.decrypt("encrypted_text", mEncryptKey, mEncryptIV);
release

인식기 메모리 해제

Parameters
# Name Description Type
Returns

-

Example
mImageRecognizer.release();
getVersion

SDK 버전 확인

Parameters
# Name Description Type
Returns

SDK 의 버전

Example
BuildInfo.getVersion()
isValidLicense

라이선스가 유효한지 여부 판단
SDK 사용 초기에 호출하지 않으면 제한된 날짜까지만 사용제한

Parameters
# Name Description Type
[in] context Application context Context
Returns

라이선스 유효 여부 (true – 유효, false – 만료)

Example
if (!LicenseChecker.isValidLicense(getApplicationContext())) {
  Toast.makeText(getApplicationContext(), R.string.error_license_check, Toast.LENGTH_SHORT).show();
}
getExpiredDate

라이선스 만료일자 출력

Parameters
# Name Description Type
[in] context Application context Context
Returns

라이선스 만료일자

Example
Date date = LicenseChecker.getExpiredDate(getApplicationContext());

SelvyCreditCardInfo


BOOL isValidCardNumber            //카드 번호가 유효한지 여부
NSString* cardNumber              //카드 번호 스트링
NSData* cardNumberData            //암호화 된 카드 번호 NSData
NSString* expiryMonth             //카드 유효기간 월 스트링
NSString* expiryYear              //카드 유효기간 년 스트링

Functions list

// 카드 인식
(void)recognize:(UIImage *)image delegate:(id<SelvyCreditCardRecognizerDelegate>)delegate
// 인식 결과 암호화를 적용하는 카드 인식
(void)recognize:(UIImage *)image key:(NSString *)key iv:(NSString *)iv delegate:(id<SelvyCreditCardRecognizerDelegate>)delegate
// 라이선스 유효 여부 확인
(BOOL)checkLicense
// 라이선스 만료 날짜 확인
(NSDateComponents *)getExpiredNSDateComponents

SelvyCreditCardRecognizer : OCR 처리를 담당하는 클래스

(void)recognize:(UIImage *)image delegate:(id<SelvyCreditCardRecognizerDelegate>)delegate

카드 인식

Parameters
# Name Description Type
[in] image 신용카드 이미지 UIImage *
[in] delegate 인식 결과를 전달 받을 콜백 객체 id<SelvyCreditCardRecognizerDelegate>
Returns

-

(void)recognize:(UIImage *)image key:(NSString *)key iv:(NSString *)iv delegate:(id<SelvyCreditCardRecognizerDelegate>)delegate

인식 결과 암호화를 적용하는 카드 인식

Parameters
# Name Description Type
[in] image 신분증 촬영 이미지 UIImage *
[in] key 인식 결과 암호화에 사용될 키(길이 : 32byte(256bit)) NSString *
[in] iv 인식 결과 암호화에 사용될 Initialization Vector(길이 : 16byte(128bit)) NSString *
[in] delegate 인식 결과를 리턴하기 위한 콜백 id<SelvyIDCardRecognizerDelegate>
Returns

-

(NSString *)decryptDataToStringUsingAES:(NSData *)data key:(NSString *)key iv:(NSString *)iv

인식 결과를 복호화

Parameters
# Name Description Type
[in] data 복호화 할 데이터 NSString *
[in] key 암호화에 사용될 키(길이 : 32byte(256bit)) NSString *
[in] iv 암호화에 사용될 초기화 벡터(길이 : 16byte(128bit)) NSString *
Returns

복호화 된 데이터의 NSString (데이터가 유효하지 않거나 키값 길이가 맞지 않을 경우 nil 리턴)

(BOOL)checkLicense

라이선스 유효 여부를 리턴

Parameters
# Name Description Type
Returns

BOOL : 라이선스 유효 여부

(NSDateComponents *)getExpiredNSDateComponents

라이선스 만료 날짜를 NSDateComponents 객체로 리턴

Parameters
# Name Description Type
Returns

NSDateComponents : 라이선스 만료 날짜

(NSString *)getVersion

버전 정보 스트링을 리턴

Parameters
# Name Description Type
Returns

NSString : 버전 정보 스트링

SelvyCreditCardRecognizerDelegate

(void)onCreditCardRecognized:(UIImage *)cardImage cardInfo:(SelvyCreditCardInfo *)cardInfo

신용카드 촬영 및 인식 성공 시, 결과 전달

Parameters
# Name Description Type
[in] cardImage 인식에 사용된 카드 이미지 UIImage *
[in] cardInfo 인식된 카드 정보 SelvyCreditCardInfo *
Returns

-

(void)onCreditCardError:(CreditCardError)errorCode

신분증 촬영화면에서 촬영이나 인식 실패 시, 결과 전달

Parameters
# Name Description Type
[in] errorCode 신용카드 인식 실패 코드
  • CreditCardErrorInvalidLicense: 라이선스 체크 실패
  • CreditCardErrorInitEngine: 엔진 초기화 실패
  • CreditCardErrorRecognize: 인식 실패
  • CreditCardErrorImageBlur: 이미지가 흐리게 촬영 됨
IDCardError
Returns

-

startRTRRecognition

입력된 카메라 프리뷰 이미지를 인식하고 그 결과를 리스너로 반환

Parameters
# Name Description Type
[in] preview 카메라 프리뷰 이미지 데이터 byte[]
[in] previewWidth 프리뷰 이미지 가로 길이 int
[in] previewHeight 프리뷰 이미지 세로 길이 int
[in] guideRect 가이드 Rect Rect
[in] cameraOrientation 카메라 회전 값 int
[in] blurThreshold 인식을 시도하지 않는 이미지 흐림 정도 값 0(깨끗함)~1(흐림) float
[in] recognitionListener 결과 반환 리스너 RecognitionListener
Returns

-

Example
ImageRecognizer mImageRecognizer = new ImageRecognizer(getApplicationContext());
  ImageRecognizer.RecognitionListener mRecognitionListener = new ImageRecognizer.RecognitionListener() {...);
  mImageRecognizer.startRTRRecognition(previewData, previewWidth, previewHeight, mGuideRect, mCameraOrientation, mRecognitionListener);
getBlurValue

프리뷰 영상에서 초점이 흐림 정도를 측정

Parameters
# Name Description Type
[in] previewData 프리뷰 영상 byte[]
[in] previewWidth 프리뷰 너비 int
[in] previewHeight 프리뷰 높이 int
Returns

0~1 사이의 값 또는 NaN.
1 이면 매우 흐림

Example
float blurValue = mImageRecognizer.getBlurValue(data, previewSize.width, previewSize.height);
decrypt

입력된 String 을 key 와 iv 를 사용하여 복호화

Parameters
# Name Description Type
[in] text 암호화된 String String
[in] key 암호화에 사용한 key byte[]
[in] iv 암호화에 사용한 kv byte[]
Returns

복호화된 String

Example
byte[] mEncryptKey = {'s', 'e', 'l', 'v', 'a', 's', 'a', 'i' ...};
  byte[] mEncryptIV = {'s', 'e', 'l', 'v', 'a', 's', 'a', 'i' ...};
  String decodedText = ImageRecognizer.decrypt("encrypted_text", mEncryptKey, mEncryptIV);
release

인식기 메모리 해제

Parameters
# Name Description Type
Returns

-

Example
mImageRecognizer.release();
getVersion

SDK 버전 확인

Parameters
# Name Description Type
Returns

SDK 의 버전

Example
BuildInfo.getVersion()
isValidLicense

라이선스가 유효한지 여부 판단
SDK 사용 초기에 호출하지 않으면 제한된 날짜까지만 사용제한

Parameters
# Name Description Type
[in] context Application context Context
Returns

라이선스 유효 여부 (true – 유효, false – 만료)

Example
if (!LicenseChecker.isValidLicense(getApplicationContext())) {
    Toast.makeText(getApplicationContext(), R.string.error_license_check, Toast.LENGTH_SHORT).show();
  }
getExpiredDate

라이선스 만료일자 출력

Parameters
# Name Description Type
[in] context Application context Context
Returns

라이선스 만료일자

Example
Date date = LicenseChecker.getExpiredDate(getApplicationContext());