'Compact Framework'에 해당되는 글 3건

M4650, M4655 데이타 이용 요금 메시지 없애기(2) :: 2008/12/06 23:52

http://www.jcreator.co.kr/212 글에 이어, 이번에는 어플리케이션을 개발함에 있어서
자동으로 이 데이타 이용 요금 메시지를 없앨 수 있는 방법을 알려드리고자 합니다.

보통 이런 설정들은 레지스트리에 저장되어 있는데, SOTI Pocket Controller 란 프로그램을 통해서
값을 변경해가며 변화되는 레지스트리 값이 있는지 몽땅 뒤졌습니다.
어떻게 보면 좀 구식적인 방법이죠.
하지만 대충 레지스트리의 키를 보면 어느정도 유추가 가능하기 때문에 쉽게 찾을 수 있었습니다.

사용자 삽입 이미지

사용자 삽입 이미지

특이하게 1이 해제 상태입니다.
아마도 0이 기본값이다보니 그렇게 되어있나봅니다.

Compact Framework(C#) 개발자는 다음과 같이 쉽게 값을 바꿀 수 있습니다.(M4650 기준)

- 메시지 해제 시
Registry.SetValue("HKEY_CURRENT_USER\\Software\\Samsung\\Phone", "UserCfrmWarningUI", 1, RegistryValueKind.DWord);

- 메시지 설정 시
Registry.SetValue("HKEY_CURRENT_USER\\Software\\Samsung\\Phone", "UserCfrmWarningUI", 0, RegistryValueKind.DWord);

2008/12/06 23:52 2008/12/06 23:52
Name
Password
Homepage
Secret

MP3 Header 분석기 - J-Ump3 Mobile :: 2008/07/19 00:15

J-Ump3 Mobile

J-ump3 Mobile.CAB

CAB 설치 파일



Mp3 플레이 리스트에 정보(파일명, 재생시간등)를 띄워 주기 위해 Mp3 헤더를 공부하면서 간단히 만들어 본 초 경량 PPC용 프로그램입니다.

사용법은 아주 간단합니다.
왼쪽의 MP3 열기를 클릭해 Mp3 파일을 선택만 해주면, 바로 분석이됩니다.

Mp3 Header를 분석하는 알고리즘은 아래의 사이트를 참조했습니다.

Mp3 Header를 공부하는데 아주 안성 맞춤인 소스입니다.
[http://www.devhood.com/tutorials/tutori ··· _id%3D79]

C#으로 작성되었으며, 그대로 Compact Framework에 이식해서 컴파일해도 아무런 오류가 나지 않았습니다.

막상 소스만 들여다 보면, 이해가 힘들 수도 있습니다.

저는 처음에 아래의 사이트를 참고해가며 직접 헤더를 분석해주는 소스를 만들고 있다가 얼떨결에 위의 소스를 찾아버렸죠;;
[http://sangogi.com/209]

블로그 쥔장님께서 예를 들면서, 아주 쉽게 설명해주고 있습니다.
하나씩 차근차근 위의 소스와 비교해가면서 보시면 어렵지 않게 이해할 수 있습니다.

여기서도 부족한 설명이 있는데 바로 재생 시간을 구해주는 식입니다.

재생 시간은 Mp3 플레이 리스트에서 출력해주어야 할 아주 중요한 부분입니다.
이 프로그램을 만들게 된 결정적인 계기도 Mp3를 재생할 필요없이 분석만으로도 재생 시간을 추출해 내기 위해서 만들게 된 것이죠.

이 식을 이해하는데는 다음의 사이트를 참조하시면 쉽게 이해가 가실겁니다.
[http://discount77.com/blog/ospace/archive/20080421]

이 내용중에 MP3 파일 크기 계산식을 보시면,
파일크기 = 재생시간 * 비트레이트 / 8 이므로,

재생 시간을 구하고자 한다면,
재생시간 = 파일크기 * 8 / 비트레이트 가 되는 겁니다.

2008/07/19 00:15 2008/07/19 00:15
Name
Password
Homepage
Secret

[Pocket PC] QR Code Reader - QR Magazine 1.0 :: 2008/07/19 00:15

QR Magazine


QR Magazine.CAB

cab 실행 파일


1. 개요

학교 프로젝트로 만들게 된 QR Magazine 이라는 PPC용 프로그램입니다.
QR Magazine의 기본적인 아이디어는 QR Code에서 따왔습니다.

※ QR Code 란?

QR Code는 일본에서 유행중인 바코드로서 다음과 같이 생긴 2D 바코드입니다.

2D 바코드는 기존에도 있었지만 이 2D 바코드를 기반으로 태어난 QR Code는 일본 덴소웨이브(http://www.denso-wave.com/qrcode/)란 곳에서 처음 태어났습니다. QR Magazine의 메인에 있는 이미지도 이곳에서 퍼왔죠. ^^

일본에 가면(가보지는 않았지만), 위와 같은 QR Code들이 적지 않게 보임을 알 수 있습니다. 일본은 핸드폰으로 QR Code를 찍어서 웹이나 기타 서비스(할인 쿠폰이나 비행기표 발권 등)에 다이렉트로 접근하는데 사용하고 있습니다.  이것이 QR Code의 주요 활용법입니다.

여기서 우리가 궁금해야 하는 점은 왜 QR Code이냐? 는 점입니다. 
QR Code는 간략하게 다음과 같은 특징을 가지고 있습니다.

- 기존의 바코드 보다 대량의 데이터를 수용할 수 있습니다.(알파벳+숫자 최대 4,296자)
- 기존의 바코드 보다 작은 크기를 가지고 있습니다.
- 한자와 일본어를 표현할 수 있습니다.(소스만 다듬으면 한글도 가능할 듯..)
- 먼지와 손상에 대한 저항력을 가지고 있습니다.(최대 30%의 손실도 복원)
- 다양한 방향에서 인식이 가능합니다.

더 자세한 사항은 위의 덴소 웨이브 홈페이지를 참고하시기 바랍니다.

이 QR Code를 활용한 QR Magazine의 컨셉은 "잡지에 QR Code를 삽입하고, 잡지에서 표현해주기 불가능한 정보(소리나 영상 같은 멀티미디어 정보)나 지면상 부족한 정보를 QR Code를 통해 웹으로 접근하자!"입니다.

2. QR Magazine의 특징

이를 통해 QR Magazine이 완성되어 제공하는 기능은 크게 다음과 같습니다.

- 스마트폰 카메라를 이용한 QR Code 촬영
- 촬영된 QR Code를 저장/불러오기
- QR Code의 인식
- 인식된 QR Code에 대한 웹 또는 TTS 연결
- 촬영된 QR Code를 보정해 줄 수 있는 몇 가지 영상 처리

3. 동작환경

제 핸드폰을 통해 개발하였기 때문에 다음과 같은 환경에서만 확실히 구동을 보장할 수 있습니다.  혹시나 Mobile 5 환경의 요구가 들어오면 시스템상으로 전혀 하자가 없기 때문에 다운그래드 할 용의는 있습니다.

- Windows Mobile 6 Professional 이상 환경
- 테스트 폰: M4650

4. 기능 설명

① QR Code 촬영

다음과 같이 카메라를 설정 할 수 있는 메뉴가 메인에 마련되어 있습니다.



카메라 설정이 끝난 후 QR Code를 자동으로 인식할 것인지, 수동으로 인식할 것인지 선택을 합니다.

자동의 경우, QR Code를 촬영하자마자 바로 인식하는 것이고,
수동의 경우, QR Code를 촬영한 후 영상처리(자르기, 크기 조절, 회전 등)를 해서 약간의 수정을 가해 줄 수 있습니다.

보통 수동 인식으로 이미지를 약간 편집을 해주는 것이 인식률과 속도를 높이는 방법이기에 마련했습니다.  촬영을 할 때 QR Code를 딱 맞춰서 찍기가 힘들기도 하구요.

모든 설정이 끝나면 메인에서 왼쪽 소프트 키 버튼을 누르면, 촬영이 시작됩니다.
(주의하실 점은 먼저 가로로 촬영을 하시는 것이 인식률을 높일 수 있으며, 촬영을 하고나서 자동으로 종료가 되지 않기 때문에 수동으로 x나 종료 키를 눌러주셔야 한다는 점입니다.)

자동 인식 모드에서 촬영을 했으나, QR Code를 도저히 인식 할 수 없는 이미지라면 다음과 같은 메시지가 뜨면서 수동 인식 모드로 넘어갈 수 있습니다.


② 저장된 이미지 수동/자동 인식 모드로 불러 오기

촬영을 하거나, 수동 인식모드를 통해 수정된 QR Code를 이미지로 저장 할 수 있기 때문에 불러 와서 다시 인식할 수도 있습니다.

다음과 같이 메뉴를 통해 접근이 가능합니다.


자동 인식과 수동 인식에 따라서 ①번과 같은 작업을 하게됩니다.

③ 수동 인식 모드

수동 인식 모드에서는 촬영된 이미지에 대해서 다음과 같은 영상 처리를 할 수 있게 되어있습니다.  특히 이미지 회전 같은 경우, 특수각(90도, 180도, 270도)의 경우만 소스가 돌아다니고 있어서 세부 각을 처리하는데 상용 라이브러리를 제외하고는 최초로(Compact framewok로 구현하는 경우) 구현에 성공했습니다.

이를 계기로 Compact Framework 상에서의 영상처리 라이브러리를 구현하고 소스를 공개할 계획을 갖고 있습니다.





안타깝게도 Undo의 기능은 제공되지 않으므로, 이미지를 수정한 후 복구 할 수 있는 수준은 각 이미지 탭을 이동할 때 다음과 같이 한가지 영상 처리에 대한 Undo 만을 수행할 수 있습니다.


그리고 오른쪽 소프트키를 눌러서 다음과 같이 수정된 이미지를 저장 할 수도 있습니다.


왼쪽 소프트키를 누르면, 인식 작업이 시작되고 성공적으로 인식되면 인식 후 화면으로 넘어가지만 수정된 이미지도 인식되지 않을 경우 다음과 같은 메시지가 뜹니다.


약간의 애매한 메시지일 수 있으나,

예를 선택해서 저장된 이미지를 그냥 불러올 수도 있고,
아니오를 선택해서 이미지를 더 수정하거나, OK를 눌러 새로 촬영을 할 수도 있습니다.

④ 인식 후 화면

QR Code가 성공적으로 인식되면 다음과 같은 화면을 보실 수 있습니다.  인식하는 종류는 2가지입니다.  한가지는 URL이고, 나머지는 모두 그냥 Text로 인식합니다.

일단 QR Code가 URL을 담고 있다면, 자동으로 웹으로 연결 해 줍니다.


보시는 바와 같이 상단에 URL이 뜨고, 좌◀, 우▶ 버튼을 통해서 자유롭게 이동할 수 있습니다.  또한

오른쪽 소프트키를 눌러 새로고침을 할 수도 있고,
왼쪽 소프트키를 눌러 수동인식 모드로 갈 수도 있습니다.

다음은 Text로 인식되었을 경우의 화면입니다.


Text 로 인식되면, TTS 기능을 활용하여 Text를 자동으로 읽어줍니다.
TTS 엔진이 트라이얼 버젼이기 때문에, 첫부분에 약간의 멘트와 함께 이어서 인식된 텍스트를 읽어줍니다.

5. 끝으로...

짧은 기간에 만든 프로그램이다보니 버그도 있을 수 있고, 이걸 어디다 쓰나~ 하시는 분들도 있을 겁니다.

QR Magazine은 그냥 QR Code에 대해 궁금하거나 새로이 공부하시는 분들에게 약간의 도움이 될까 하는 마음에 올립니다.  또한 다른 플렛폼이나 언어보다 상대적으로 부족한 Compact Framework 영상 처리의 가능성에 대해서도 한번쯤 생각해 볼 수 있겠네요.

프로그램에 대한 궁금증이나, 좋은 의견은 댓글로 달아주시면 감사하겠습니다.

2008/07/19 00:15 2008/07/19 00:15
  • 비밀방문자 | 2008/07/17 17:10 | PERMALINK | EDIT/DEL | REPLY

    관리자만 볼 수 있는 댓글입니다.

  • 비밀방문자 | 2009/08/28 22:25 | PERMALINK | EDIT/DEL | REPLY

    관리자만 볼 수 있는 댓글입니다.

  • 윤정짱 | 2009/08/30 11:44 | PERMALINK | EDIT/DEL | REPLY

    프로그램을 사용에 대해 여쭤볼게 있어요. .. ㅎㅎ 홈피에 자주 안들어오시나봐요..ㅠ.ㅠ

  • HD | 2009/12/15 01:12 | PERMALINK | EDIT/DEL | REPLY

    안녕하세요~ 엑스페리아에서는 촬영 버튼을 누르니 인수가 올바르지 않다고 하면서 오류메시지를 보이네요.

    자세히 를 누르면 나오는 오류 내용을 적어보겠습니다.


    QR Reader.exe
    NullReferenceException

    위치:
    QR_Reader.TransQRCode..ctor(fileInfo qrcode)
    위치:

    QR_Reader.QRReader.MNU_Capture_Click(Object sender, Event args e)
    위치:
    System.Windows.Forms.MenuItem.OnClick(EventArgs e)
    위치:
    System.Windows.Forms.Menu.ProcessMnuProc(Control ctlThis, WM wm, Int32 wParam, Int32 lParam)
    위치:
    System.Windows.Forms.Form.WnProc(WM wm, Int32 wParam, Int32 lParam)
    위치:
    System.Windows.Forms.Control._Internal WnProc(WM wm, Int32 wParam, Int32 lParam)
    위치:
    Microsoft.GL.Forms.EVL.EnterMainLoop(IntPtr hwnMain)
    위치:
    System.Windows.Forms.Application.Run(Form fm)
    위치: QR_Reader.Program.Main()


    엑스페리아에서는 실행이 불가능한가요?

  • tester | 2010/08/24 23:34 | PERMALINK | EDIT/DEL | REPLY

    인식 안됌 쓰레기자료

    • JCreator | 2010/08/25 21:37 | PERMALINK | EDIT/DEL

      오래된 자료에다 날림으로 만들어서 시간이 지난 지금은 많은 디바이스에서 지원하지 않을 수 있습니다.
      증상이나 오류 메시지가 있다면 알려주세요.
      더 이상 개발은 하지않지만 증상에 대한 조언은 해드릴 수 있을 것 같군요. ^^

    • 돼지눈에는돼지만보인다더니 | 2010/11/12 02:59 | PERMALINK | EDIT/DEL

      쓰레기같은 댓글을 달고 있는 쓰레기..
      ㅉㅉㅉ 참 병맛나는넘들이 이렇게 많으니 무슨 초글링도 아니고 쌩때야.;
      basic이용해서 구구단이라도 짜봤니?한심한지고!!

Name
Password
Homepage
Secret