Introduction 조금 긴 시간 동안 자료를 조사하여, 한글 인코딩 작업을 진행하였습니다. 목표는 기타 1)다른 플랫폼과의 통신을 주고 받을 때, 발생하는 인코딩 문제, 2)한글로 된 문서 혹은 제목 등에서 자음을 이용하여 검색에 관련한 문제를 해결하기 위함입니다. 또한, 이를 이용하여 한글과 관련된 작업 중 응용할 수 있는 부분이 많이 있습니다. 특히, 영문이 아닌 한글의 타이핑의 효과, 그리고 가상 키패드 입력만들기를 수행할 수 있습니다. 한글 인코딩과 관련된 작업은 현재, 포스팅 준비 중으로 조금 기다리시면 블로그에서 보실 수 있습니다. 그럼 간단히 만들어 둔 한글 인코딩 변환 작업 모듈을 미리 볼까요~? 결과물 Download : UnicodeManager R.101.zip 파일을 다운 받아..
Introduction 출력된 이미지의 Exif 정보를 읽어 각각의 이미지 위에 Tooltip정보를 출력하는 것이 목표로서, 이번 포스팅은 Tooltip 사용방법에 대해 알아보고자 합니다. Exif는 github에 올려진 코드를 찾으면 쉽게 활용할 수 있습니다. 하지만, 너무 방대한 코드를 사용할 경우 오히려 좋지 않은 결과를 나타낼 수 있으니 적절히 테스트 이후, 진행하시는 걸 추천드립니다. 결과물 미리보기 원하는 목적은 PIcture control에 ToolTip 정보를 출력하여 사용자에게 이미지의 Exif를 출력해주는 것입니다. MFC - Dialog의 Picture Control Properties 설정 가장 먼저 Picture control의 속성 중 "Notify" 옵션을 "TRUE"로 변경을..
Introduction MFC CString을 이용하여 3자리 마다 콤마(,)를 추가하는 방법은 다음과 같이 수행하시면 됩니다. 간략한 코드는 메모와 함께 진행합니다. 레퍼런스의 코드와 동일합니다. CString 3자리 마다 콤마 추가 CString CProjectCleanerDlg::STR_COMMA(int i) { BOOL bMinus = FALSE; if (i 3; j -= 3) str.Insert(j - 3, _T(",")); if (bM..
Introduction 이번에 만들고 있는 툴로 인해, 리소스를 관리가 필요해졌습니다. 리소스를 관리하기위해서는 사용자에게 공개되지 않고, SW에서만 사용하도록 하기위해서 입니다. 그래서 여러가지 방법을 이용하여 시도를 하고 있는데, 이번 버전은 간단하게 만들어두었습니다. 작업과 관련내용은 비밀로 하도록 하고, 사용방법에 대해서만 설명 하도록 하겠습니다. 그럼 바로 본론으로 가서 같이 설명하도록 하겠습니다. (SW 내부 참고이미지: 데이다라 사용) 리소스 관리 툴 현재 만든 리소스 관리 툴은 다음과 같습니다. 사용용도를 정리하면 다음과 같습니다. 사용자가 만든 이미지를 SW에서 사용하기위해서 이미지를 하나의 파일로 통합 이때, 통합된 파일은 최초 사용자가 비밀번호를 이용하여 최종 파일 생성 시, 암호화되..
Introduction 최근 socket.io와 관련된 내용은 포스팅 했었습니다. 물론 socket.io 이전에 가장 익숙한 TCP/IP 형태의 소켓을 이용하여 개발을 먼저 시도하였죠. 연결과 영문 전송은 성공입니다. 하지만, 한글은 제대로 전송이 되지 않더군요. 물론 macOS에서 Windows와 다른 인코딩을 사용한다는 것은 알고 있었지만, 쉽게 해결되지 않을꺼란 생각을 했었죠. 그래서 '한국어'와 관련한 인코딩에 대해 서베이를 시작하였습니다. 자료는 1998년도부터 최근자료까지 다 찾아봤죠. 크게보면 중복된 내용들이 블로그를 타고타고 넘어가서 만들어진 자료들이더군요. 자료는 정리 중이니 이후 블로그에서 확인하시면 될 것 같고, 본론인 swift와 Windows에서 개발한 C/C++에서의 한글 인코딩..
Introduction 사진촬영을 할때, GPS가 내장된 기기에서는 자동으로 위치정보를 사진에 기록하게 됩니다. 이러한 사진들을 수집하여, 지도위에 나타내거나 혹은 여러가지로 LBM 시스템을 만들 수 있습니다. 하지만, 저는 GPS정보를 이용하여 단순히 촬영 된 사진을 일자/GPS정보 등을 이용하여 분류하고자 합니다. 물론 CNN등을 이용하여 분류할 계획도 하고 있지만, step by step 할꺼니까. 필요한 모듈을 먼저 만들고나서, 하나의 덩어리로 뭉칠 계획입니다. 그래서 온라인에 exif 를 parsing 하는 모듈을 꽤 찾아봤습니다. 물론 소스코드가 길다고 좋은 코드가 아니기때문에 필요한 정보가 나오는 코드가 있으면 전부 정리해서 테스트를 해보았습니다. 그리고 향후 작업을 위해서 visual st..
Introduction MFC를 사용하면서 list control을 사용할 때가 많습니다. 이전 포스팅 release 중에 리스트 콘트롤을 사용하는 경우가 종종 있어 이를 사용하기 위해서 조금 더 편리하게 클래스로 묶어두면 좋지 않을까 고민을 하였습니다. 또한, 리스트 콘트롤을 사용할 경우 발생하는 문제점으로 결과물 출력 속도가 있습니다. 이런 부분을 조금 더 쉽게 해결할 수 있는 방법이 없을까? 고민하여 인터넷을 찾아보기 시작하였습니다. 그렇게 인터넷을 찾아보고, 조금씩 아이디어를 획득 후 작업에 들어갔습니다. 결과는 성공....!! 랩핑이 조금 필요한 부분이 있지만, 사용방법에 대해 먼저 포스팅 하도록 하겠습니다. 사용법 사용하기 이전 list control의 properties 설정을 변경해야 합니..
Introduction MFC에서 picture control에 IplImage, Mat 이미지를 불러와야하는 경우가 종종 있었습니다.(과거형..) 최근에는 이를 이용하여 몇가지 툴을 만들고 있지만, 옛날에는 자료들이 없어 조금씩 정리를하고 있습니다. 서론 없이 코드를 보면서 이야기를 바로 하도록 하겠습니다. MFC - Mat 이미지 호출 COpenCVTestDlg.h public : Mat m_matImage; BITMAPINFO *m_pBitmapInfo; void CreateBitmapInfo(int w, int h, int bpp); void DrawImage(); MFC 다이얼로그에 Mat, BITMAPINFO 를 정의 합니다. 그리고 함수 정의 두개 추가 합니다. COpenCVTestDlg.c..
Introduction 문자들의 조합에는 다양한 특수문자들이 포함되어있습니다. 이러한 특수문자는 문서, 음악 등을 검색할 때 특히 취약한 부분입니다. 따라, 특수문자를 제거를 통해 검색의 효율을 올리는 방법을 알려드리고자 합니다. 검색에 대한 부분은 추후 정리할 예정이며, 이번 포스팅에서는 특수문자 제거하는 부분에 대해 살펴보도록 하겠습니다. 먼저, 특수문자는 어떻게 정의 되어있는지 알기위해 ASCII코드를 살펴보도록 하겠습니다. Low level이라 하기는 그렇지만, 문자를 다루기 위해서는 아스키코드, 유니코드 등 문자들에 대해 꼭 알아둬야 합니다. 이 밖에 2벌식, 3벌식, 글자 조합 등과 관련된 내용들이 있지만 이 내용 또한 추후 정리 하도록 하겠습니다. 특수문자 아스키 코드가 정리된 곳은 많이 있..
Introduction 앞서 포스팅 했던 내용 중 윈도우의 로컬 폰트 뷰어가 있습니다. 현재 포스팅 된 내용에서 조금 부족한 부분을 찾아 코드를 업데이트 해두었습니다. 관련 내용은 Edit Box에 현재 글자를 입력 중인 상태일 때, 결과를 바로 실시간 업데이트 하는 것입니다. 옛날부터 이런건 찾아서 만들어두고, 넘어가버리는 경우가 많아 블로그에 살포시 포스팅 하고 넘어가도록 하겠습니다. 어렵지 않아요~ MFC Edit control 입력 검사 Edit control에 EN_CHANGE 메시지를 추가합니다. 그리고 아래와 같이 코드 추가 하면 끝. void CLocalFontManagerDlg::OnChangeEditInputText() { UpdateData(TRUE); if (m_InputText.G..
Introduction MacOS를 재설치하고나서 이것 저것 SW/App들을 설치를 하였습니다. 마지막에 anaconda 및 tensorflow 설치 및 설정을 하였습니다. 그리고 설정이 어디까지 되었는지는 모르지만, 터미널을 실행하게 되면 $ (base)~ 로 시작하게 됩니다. 그리고 이후에 Mac에 설정된 git을 실행하려고 하는데 실행이 되지 않고 아래와 같은 오류 메시지를 출력하게 됩니다. (상위 결과 화면은 anaconda의 실행관련 문제 해결 후 “git” 명령을 수행할 때 나타나는 상황) 일단, git을 터미널로 사용하고 있기때문에 찾아서 해결해보도록 하겠습니다. 터미널에서 $(base)~ 나타나는 문제점/해결방안 #문제점 터미널을 실행하면 아래와 같이 나옴 $(base)UserName:~~..
Introduction 이번 포스팅은 제목 그대로 내용을 작성하려고 합니다. 최근 들어, 모바일 기기로 iOS, Android를 많이 사용하고 있습니다. 그리고 사용자들이 주로 사용하는 플랫폼으로 모바일 외, Windows, macOS, linux 등을 이용하고 있습니다. Watch series의 경우는 모바일 기기에 종속되기때문에 제외하도록 하겠습니다. 일단 본 포스팅의 주된 목표는 앞서 말한 플랫폼의 클라우드를 구축하는 것으로서 네트워크를 통해 연결작업을 준비해야합니다. 이를 위해 필자는 아래와 같이 테스트를 해보았습니다. TCP/UDP 형태의 통신 테스트 Windows Server(C/C++) iOS Client (language:siwft) 통신 가능 Error: 영문으로 된 데이터만 전송할 경우..