본문 바로가기

전체 글532

coreAudio recording coreAudio recording .h #import #import #import #import #import //오디오 큐 서비스를 사용하는 클래스 정의 enum { kNumberBuffers = 3, //오디오 버퍼큐는 3개 kNumberPackages = 10* 1000,}; struct RecorderStat{ AudioStreamBasicDescription mDataFormat; //오디오 스트림의 광범위한 특성정의 AudioQueueRef mQueue; // 재생오디오큐 AudioQueueBufferRef mBuffers[kNumberBuffers]; //오디오 큐 버퍼 포인트의 리스트 AudioFileID mAudioFile; //오디오 파일 객체 UInt32 bufferByteSize;.. 2018. 12. 19.
AVFoundation을 이용한 녹음 재생하기 AVFoundation을 이용한 녹음 재생하기 .h #import @interface ViewController : UIViewController //녹음버튼 + 멈춤@property (strong, nonatomic) IBOutlet UIButton *recordPauseButton; //정지 버튼@property (strong, nonatomic) IBOutlet UIButton *stopButton; //플레이 버튼@property (strong, nonatomic) IBOutlet UIButton *playButton; //녹음 버튼 + 멈춤버튼 눌렀을때- (IBAction)recordPauseTapped:(id)sender; //정지버튼 눌렀을때- (IBAction)stopTapped:(id)s.. 2018. 12. 17.
이미지 자르기 + 제스쳐 + transparentview 예제 이미지 자르기 + 제스쳐 + transparentview 예제 #import #import "ImageViewerViewController.h" @interface ViewController : UIViewController - (IBAction)captureBtnAction:(id)sender; @end #import "ViewController.h" @interface ViewController (){ IBOutlet UIImageView *myImage; UIView *testVw; //뷰파인더 CGPoint prevPoint; //옮기기 전 위치 point UIView *resizeVw; //빨간색 UIView *resizeVw2;// 파란색 UIBezierPath *backPath; //검은색 .. 2018. 12. 14.
objective c block에 대한 이해 objective c block에 대한 이해 block 정의 변수나 데이터 구조안에 담을 수 있다. 파라미터로 전달 할 수 있다. 반환값(return value)으로 사용할 수 있다. 할당에 사용된 이름과 관계없이 고유한 구별이 가능하다. 재사용해야하는 경우에는 클래스 기반의 Delegate을 사용고, 한번 사용할 로직이라면 보통 블럭을 사용 block 은 런타임에 생성되는 다이나믹 함수(Dynamic Function) 이다. 병렬처리나 비동기처리(Asyncronous Processing), 혹은 '함수형언어(Functional Language)'의 특징과 비슷하다. 예제 #import "SampleClass.h"#import int main(int argc, const char * argv[]) { @.. 2018. 12. 10.
UIImagePickerController를 이용한 비디오 UIImagePickerController를 이용한 비디오 뷰컨트롤러 #import #import "ImagePickerController.h"#import "ListTableViewController.h" @interface ViewController : UIViewController @property(nonatomic,strong) ImagePickerController *imagePickerController; - (IBAction)cameraBtn:(id)sender; - (IBAction)librayBtn:(id)sender; @end #import "ViewController.h" @interface ViewController () @end @implementation ViewControlle.. 2018. 12. 7.
ios filemanager 관련 모듈 - 저장 삭제 이동 ios filemanager 관련 모듈 #import @interface IDFileManager : NSObject - (NSURL *) tempFileURL;- (void) removeFile:(NSURL *)outputFileURL;- (void) copyFileToDocuments:(NSURL *)fileURL;- (void) copyFileToCameraRoll:(NSURL *)fileURL; @end #import "IDFileManager.h"#import @implementation IDFileManager //현재 파일 위치- (NSURL *)tempFileURL{ NSString *path = nil; NSFileManager *fm = [NSFileManager defaultManag.. 2018. 12. 7.
ios 사이드 메뉴 ios 사이드 메뉴 MMDrawerController-master 라이브러리와 stroyboard 를 이용한 사이드 메뉴 샘플 uiview 를이용한 사이드 메뉴 샘플 uiview 모듈을 이용한 사이드 메뉴 샘플 2018. 12. 5.
ios objective c sha256 해쉬 sha 512 함수 ios objective c sha256 해쉬 sha 512 함수 #import -(NSString*) sha256:(NSString *)clear{ const char *s=[clear cStringUsingEncoding:NSASCIIStringEncoding]; NSData *keyData=[NSData dataWithBytes:s length:strlen(s)]; uint8_t digest[CC_SHA256_DIGEST_LENGTH]={0}; CC_SHA256(keyData.bytes, keyData.length, digest); NSData *out=[NSData dataWithBytes:digest length:CC_SHA256_DIGEST_LENGTH]; NSString *hash=[out .. 2018. 12. 5.
ios 카메라를 만드는 두가지 방법 - 설명 ios 카메라를 만드는 두가지 방법 1 UIImagePickerController 사용 -Foundation 프레임워크의 UIImagePickerController 클래스를 사용하면된다. 장점: 구현이 쉽다. 단점: 커스터마이징이 어렵다. AVCaptureDevice 다양한 커스터마이징 가능 AVCaptureSession 카메라를 시작을 선언해주는 역할을 한다. 일반적으로 별도의 카메라 큐를 만들어서 세션을 시작한다. AVCaptureVideoPreviewLayer 카메라가 향하는 곳을 영상으로 볼 수 있다. PreViewLayer는 영상이 나오는 화면을 가르킨다. PreViewLayer는 AVCaptureDevice + AVCaptureSession + Input + Output을 갖춰야 한다. AVC.. 2018. 12. 4.
ios 카메라를 만드는 두가지 방법 2 첫번째 방법 //// ViewController.h// CarmeraExam1// // #import #import @interface ViewController : UIViewController //프레임을 강제로 연속 캡쳐@property (weak, nonatomic) IBOutlet UIView *frameforcapture; //순간적으로 찍은 이미지 보이게@property (weak, nonatomic) IBOutlet UIImageView *imageV; - (IBAction)takePhoto:(id)sender; @end //// ViewController.m// CarmeraExam1// // #import "ViewController.h" @interface ViewController .. 2018. 12. 3.
objective c nsoperation 예제 objective c nsoperation 예제 개념정리 #. NSOperation =. 하나의 작업 단위. NSOperation은 모델링 상태, 우선순위, 의존성, 관리를 지원하는 추상 클래스이다. NSOperation를 상속하여 커스텀 클래스를 만들어 활용함. #. 네트워크 요청, 이미지 리사이즈, 텍스트 처리, 또는 기타 다양한 반복처리등을 처리하는 NSOperation 이 있을때, 이 특정 작업이 담겨있는 NSOperation 객체는 혼자서 일을 할 수 없다. 이러한 작업을 진행해주는 녀석이 NSOperationQueue이다. #. NSOperationQueue : NSOperationQueue는 작업의 동시 실행을 조절 기본적으로는 First-In-First-Out으로 동작 maxConcurre.. 2018. 11. 27.
ios objective c - http 네트워크 통신 1 ios objective c - http 네트워크 통신 1 이번포스팅에서는 ios 네트워크 통신에 대해서 간단히 정리한다. 상황클라이언트: ios 폰중간에서 컨트롤하는 녀석: 퍼사드서버: json 데이터형식 ios 네트워크에서 퍼사드 디자인 패턴을 알아본다. 퍼사드란 클라이언트와 서버 사이에 위치하는 녀석으로 클라이언트(앱)의 수정과 배포를 획기적으로 수월하게 해주는 녀석이다. 아래 코드는 날씨어플 버젼 1에서 버젼2로 코드수정을 했고, 주식어플 버젼1에서 버젼2로 코드 수정을하고 업데이트를 했다. 퍼사드 패턴을 써서 얼마나 쉽고 간결하게 처리를 해줬는지 확인했으면 ok. 코드에 주석을 달아 놓았다. 네비게이션 appdelegate.h//// AppDelegate.h// 1NetWork//// Creat.. 2018. 11. 14.
ios objective c 코어오디오 다루기 6 - 오디오 파일 변환 ios objective c 코어오디오 다루기 6 - 오디오 파일 변환 //// main.m// 6//// Created by service on 2018. 11. 12..// Copyright © 2018년 service. All rights reserved.// /* - mp3 나 aac 와 같은 엔코드된 파일을 .caf 컨테이너 파일로 변환하기 - 하나의 파일에서 데이터를 읽고, 메모리의 일부 패킷을 변환하고, 결과를 다른 파일에 쓰기 - 오디오 파일 서비스 사용함. */ #import #import #import #define kInputFileLocation CFSTR("/Users/service/Desktop/test_cbr.mp3") typedef struct MyAudioConverterS.. 2018. 11. 13.
ios AVFoundation으로 오디오 플레이어 만들기 AVFoundation 으로 오디오 플레이어 만들기 1. mp3 파일 넣어주기, view객체 지정 대략 이런 모습 2.위에서 만든 뷰객체들을 컨트롤러에 연결시켜 준다.(avfoundation import 하고 아래 두개의 매서드를 선언해준다.) //// ViewController.h// avFoundationMusic//// Created by MacBookPro on 10/11/2018.// Copyright © 2018 MacBookPro. All rights reserved.// #import #import //델리게이트 선언@interface ViewController : UIViewController - (IBAction)playPauseAudio:(id)sender;- (IBAction)sto.. 2018. 11. 10.
ios objective c 코어오디오 다루기 5 - 재생기능 ios objective c 코어오디오 다루기 5 - 재생기능 /* 오디오 큐는 오디오 스트림을 처리하기 위해서 버퍼의 큐를 사용한다. 즉 애플리케이션은 큐에 버퍼를 제공함으로써 설정하고, 큐는 개발자 코드가 실행돼야 하는 시점에 개발자 코드의 콜백 함수로 버퍼를 전달한다. 버퍼크기를 가늠하고, 매직쿠키를 관리하는 것은 녹음하기와 비슷하지만 얍축된 오디오 데이터의 버퍼를 기술하는 AudioStreamPacketDescription을 사용한다. */ #define kPlaybackFileLocation CFSTR("/Users/service/Library/Developer/Xcode/DerivedData/4-biuofoahmxwspaaibakhduwwgnmi/Build/Products/Debug/outpu.. 2018. 11. 9.
ios objective c 코어오디오 다루기 4 - 녹음기능 ios objective c 코어오디오 다루기 4 - 녹음기능 //개발자가 오디오 큐를 생성할때 (녹음할때)입력장치에서 캡쳐된 오디오의 버퍼를 애플리케이션에 전달하거나 //(재생할때 )버퍼를 채울것을 요구하기 위한 콜백함수를 제공한다. //맥의 기본입력장치에서 녹음을 하고 , 캡쳐된 오디오를 파일에 쓴다. //사용할 오디오 형식과 녹음을 할 파일을 설정 //오디오 큐를 생성 //큐를 시작 //큐를 중지 //파일을 닫는 등의 해제 작업 #import #import #define kNumberRecordBuffers 3 //오디오 큐 콜백을 녹음하기 위한 사용자 정보 구조체 typedef struct MyRecorder { AudioFileID recordFile; //output파일 참조 SInt64 re.. 2018. 11. 8.
ios objective c 코어오디오 다루기 3 - AudioStreamBasicDescription 데이터 구조체 ios objective c 코어오디오 다루기 3 - 데이터 구조체 코어오디오는 오디오 데이터 패킷을 스트림으로 본다. AudioStreamBasicDescription 구조체는 샘플율, 하나의 채널에 비트의 수, 프레임에 채널의 수등 데이터 구조를 묘사하는 메타데이터를 포함한다. 스트림의 ASBD에 관해 중요한점은 오디오 데이터 형식의 구현 세부사항이기 때문이다. 예로 파일이나 네트워크 스트림과 같은 어떤 소스에서 데이터를 읽을 때 코어 오디오의 여러 부분은 ASBD 값을 채운다. ASBD의 구조체 이름은 m으로 시작한다. // // main.m // // // Created by MacBookPro on 06/11/2018. // Copyright © 2018 MacBookPro. All rights.. 2018. 11. 7.
ios objective c 코어오디오 다루기 2 - AudioStreamBasicDescription으로 다양한 주파수의 음원만들기 ios objective c 코어오디오 다루기 2 - AudioStreamBasicDescription으로 다양한 주파수의 음원만들기 #import #import #define SAMPLE_RATE 44100 // 초당 44,100 샘플이나 44.1kHz 샘플율 #define DURATION 5.0 //얼마나 많은 오디오의 초를 만들기를 원하는지 //#define FILENAME_FORMAT @"%0.3f-square.aif" // 삐익~~~ 티비 신호 나갔을때 음 #define FILENAME_FORMAT @"%0.3f-saw.aif" //#define FILENAME_FORMAT @"%0.3f-sine.aif" //파일이름 넣기 //솔음으로 쭉~ int main(int argc, const char .. 2018. 11. 6.
ios objective c 코어오디오 다루기 1 ios objective c 코어오디오 다루기 1 오디오 파일을 불러와서 속성 정보를 출력하는 간단한 로직이다.코어오디오 api를 사용하기 위해서 AudioToolbox 라이브러리를 추가해줘야한다.(왼쪽 네비게이션에서 프로젝트 아이콘 클릭 -> Build Phasses -> Link Binary With Libraries -> + 버튼 클릭 -> 찾아서 추가해줌) // // main.m // 1 // // Created by service on 2018. 11. 6.. // Copyright © 2018년 service. All rights reserved. // /* 파일을 열고, 메타데이터에 대한 버퍼 할당 메타데이터를 갖는다. */ #import #import //파일경로 : "~/Music/iTu.. 2018. 11. 6.
objective c session post get방식 정리! 목표node js 로 서버를 만들고 nssession을 이용해서 통신하기 순서1.nods js 로 서버를 구동시킨다.2.xcode storyboard 로 뷰를 만든다.3.Viewcontroller.h 에 NSURLConnectionDelegate를 상속받는다. 4.Viewcontroller 에 nssession 을이용해서 서버와 통신을 한다. node js 서버(node js 로 구성한 초간단 서버다. get,post 방식으로 접속했을때 아래 로직을 타고, 이름과 비밀번호를 json방식으로 리턴하는 로직이다.자세한건 node js 카테고리 참조.)// 라우터를 설정합니다.app.get('/test', function (request, response) { // 응답합니다. response.json({us.. 2018. 10. 29.
Ios 그림파일을 텍스트로 바꾸기 Ios 그림파일을 텍스트로 바꾸기 참고 1. https://github.com/gali8/Tesseract-OCR-iOS/wiki/Using-Tesseract-OCR-iOS 2. https://github.com/tesseract-ocr/tessdata/tree/bf82613055ebc6e63d9e3b438a5c234bfd638c93 순서 1번 페이지에서 해당 소스를 pod 로 인스톨 한다. 전환할 텍스트가 있는 그림파일을 프로젝트에 넣어준다. 프로젝트에 tessdata 라는 이름의 폴더를 만들어주고 해당 언어의 파일을 넣어준다. (해당언어의 파일은 참고 2. 페이지에서 다운로드 가능하다.) 샘플 소스를 viewdidload 부분에 적는다. 변환할 사진을 보여줄 uiviewimage 객체 하나 변환된 t.. 2018. 10. 25.
ios 루팅방지 체크 소스 ios 루팅방지 체크 소스 +(BOOL)isJailbroken{ #if !(TARGET_IPHONE_SIMULATOR) if ([[NSFileManager defaultManager] fileExistsAtPath:@”/Applications/Cydia.app”]){ return YES; }else if([[NSFileManager defaultManager] fileExistsAtPath:@”/Library/MobileSubstrate/MobileSubstrate.dylib”]){ return YES; }else if([[NSFileManager defaultManager] fileExistsAtPath:@”/bin/bash”]){ return YES; }else if([[NSFileManager de.. 2018. 10. 24.
UIViewContorller의 수명주기 관리 메서드 UIViewContorller의 수명주기 관리 메서드 viewDidLoad : 뷰라는 틀을 처음 불러 올떄 실행해야 할 동작을 구성하는 메소드viewWillAppear : 뷰라는 틀에 보여질 내용을 구성하는 메소드viewDidAppear : 뷰 내용을 보이고 난 후 뷰에서 실행해야 할 동작을 구성하는 메소드viewWillDisappear : 뷰의 내용을 더 이상 사용하지 않게 될때 실행해야할 동작을 구성하는 메소드viewDidDisappear : 뷰라는 틀에 내용을 없앨때 실행해야하는 동작을 구성하는 메소드viewDidUnload : 뷰라는 틀을 사용하지 않을 때 실행해야할 동작을 구성하는 메소드 //실행 2018-10-22 14:57:33.267860+0900 AppLifeCycle[9503:62521.. 2018. 10. 23.
iOS 파일 시스템 관련 함수들 (NSFileManager Class) iOS 파일 시스템 관련 함수들 (NSFileManager Class) 디렉토리 다루기 methodexplanation- (NSString *) currentDirectoryPath현재 경로를 가져온다.- (BOOL) changeCurrentDirectoryPath:path현재 경로를 변환한다.- (BOOL) createDirectoryAtPath새 디렉토리 생성한다.- (BOOL) copyPath:from toPath:to handler : handler디렉토리 구조를 복사한다.- (BOOL) fileExistsAtPath : path isDirectory:(BOOL *)flag파일이 디렉토리인지 구분한다.- (NSArray *) directoryContentsAtPath:path디렉토리 내용을 가져온.. 2018. 10. 23.
자바스크립트 객체 예제 //방법1.function Car(name,color){this.name = name;this.color = color;this.show = function(){console.log(name, color)}} var car1 = new Car('morning','blue');car1.show(); //방법2. 프로토타입 이용 function BigCar(name, color){this.name = name;this.color = color;} BigCar.prototype.show = function(){console.log('bigcar' ,this.name , this.color)}//자식 객체 1var bigcar1 = new BigCar('churare','white');bigcar1.show().. 2018. 10. 15.
node js data object 만들기 //person.js// person data object. setter getter 만드는 방법 var firstName, lastName, age; exports.setFirstName = function (fname) { firstName = fname;}; exports.setLastName = function (lname) { lastName = lname;}; exports.setAge = function (yrsold) { age = yrsold;}; exports.getPersonInfo = function () { return { firstName: firstName, lastName: lastName, age: age };};----------------------------------.. 2018. 10. 15.
nodemailer 메일 보내기 & 랜덤 비밀번호 //관련 모듈 설치//npm i nodemailer//npm i nodemailer-smtp-transport var nodemailer = require('nodemailer');//smtp 서버를 사용하기 위한 모듈이다.var smtpTransport = require('nodemailer-smtp-transport'); //아이디가 존재할 경우 //숫자 + 문자 + 특수문자 새로운 비밀번호 생성하고 var arr = "0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,~,`,!,@,#,$,%,^,&,*,(,),-,+,|,_,=,\.. 2018. 10. 15.
objective c 의 모든것 objective c 기초 =============== 반환값, 파라미터가 객체일때 표기법 반환값, 파라미터가 객체 : 클래스 이름과 * 을 사용한다. - (NSString *)uppercaseString; 구조체: * 없이 사용 - (NSRange)rangeOfString:(NSString *)aString; =============== 객체 생성하기 #import int main(int argc, const char * argv[]) { @autoreleasepool { NSObject *obj1 = [[NSObject alloc] init]; // 반환값이 객체이기 때문에 *변수 사용. NSLog(@"Object : %@", obj1); NSObject *obj2 = obj1; NSLog(@"Obj.. 2018. 7. 28.
objective c alert 구현 alert 구현 - (IBAction)alert:(id)sender { //팝업구현을 하는 클래스 UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"알림" message:@"환영합니다." preferredStyle:UIAlertControllerStyleAlert]; //팝업 버튼 구현하는 클래스 UIAlertAction *closeAction = [UIAlertAction actionWithTitle:@"닫기" style:UIAlertActionStyleCancel handler:nil]; //팝업 클래스에 버튼을 넣는 메소드 호출 [alert addAction:closeAction]; //나타나게 [self present.. 2018. 7. 28.
스프링 기초 DI 예제 4 스프링 기초 DI 예제 4 [스프링 컨테이너 생명 주기] 스프링 컨테이너 생성 : GenericXmlApplicationContext ctx = new GenericXmlApplicationContext(); ------> 설정 : ctx.load("classpath:baseBall.xml"); ctx.refresh(); ------> 사용 : Player player =ctx.getBean("player".Player.class); player.getName(); player.getPosition(); ------> 종료 :ctx.close() [빈 Life cycle(생명주기)] ctx.refresh 과정에서 빈이 생성 ctx.close() 컨테이너가 소멸하는 단계에서 빈도 자동으로 소멸됩니다. In.. 2018. 7. 17.