ImageDownloader.zip


다운로드에는 닷넷 프레임워크가 필요합니다.


/////////////


https://github.com/nipa0711/SequenceImageDownloader


소스코드 입니다.


C# + WPF로 개발되었습니다.





https://www.clien.net/service/board/kin/12322778 의 글을 보고 개발 시작했습니다.



웹상의 순차적인 번호를 가진 이미지들을 다운로드 가능합니다.

'Project > Personal' 카테고리의 다른 글

모자이크 이미지 만들기  (0) 2017.04.01
Network Bingo game server and client  (0) 2017.01.31
Simple Filter  (0) 2016.09.25
처음으로 만들어본 MFC 프로그램 입니다.  (0) 2016.09.23
Simple 이미지 합성 프로그램  (0) 2016.09.23

mosaic photo.zip




이미지 불러와서, MS Computer Vision 애저 서버에서 분석하고,

 

그 결과 값을 받아온 뒤,

 

신뢰성 높은 태그 중 랜덤으로 하나 뽑은 후에,

 

플리커에서 해당 태그로 사진 검색하여 나온 사진들을

 

랜덤으로 조각조각 배치합니다.





https://github.com/nipa0711/mosaic-photo




'Project > Personal' 카테고리의 다른 글

Sequence Image Downloader  (0) 2018.07.11
Network Bingo game server and client  (0) 2017.01.31
Simple Filter  (0) 2016.09.25
처음으로 만들어본 MFC 프로그램 입니다.  (0) 2016.09.23
Simple 이미지 합성 프로그램  (0) 2016.09.23

서버와 클라이언트로 구성되어 있으며, C#을 이용하여 제작되었습니다.


서버는 콘솔 환경이며, 클라이언트는 WPF를 이용한 GUI환경입니다.




1:1 네트워크 플레이를 가정하고 개발되었습니다.






클라이언트 최초 실행 시.




서버 최초 실행 시의 모습입니다.




서버와의 통신을 거쳐서 접속하게 됩니다.





또 다른 클라이언트를 이용하여 접속해봤습니다.










위 영상은 실제로 친구와 네트워크를 통해 플레이 해 본 영상입니다.





클라이언트 소스
https://github.com/nipa0711/BingoClient

서버 소스
https://github.com/nipa0711/BingoServer






클라이언트에서 키 값을 서버에 전달하여, 서버에서 해당 키 값을 다시 클라이언트로 넘겨주며, 동시에 빙고판정도 서버에서 처리하게 됩니다.


이는 기본적으로 네트워크 환경의 게임에서는 클라이언트는 믿을 것이 못 된다는 선배들의 조언에 따라 개발하였기 때문입니다.


'Project > Personal' 카테고리의 다른 글

Sequence Image Downloader  (0) 2018.07.11
모자이크 이미지 만들기  (0) 2017.04.01
Simple Filter  (0) 2016.09.25
처음으로 만들어본 MFC 프로그램 입니다.  (0) 2016.09.23
Simple 이미지 합성 프로그램  (0) 2016.09.23

byte[] ascii = Encoding.ASCII.GetBytes("문자열");
foreach (byte b in ascii)
{
        Console.WriteLine(string.Format("0x{0:x}", b));    // Ascii 
        Console.WriteLine(((Char)b).ToString());            // Ascii To Char
}



위와 같은 형식으로 이용하면 된다.





C#으로 서버는 콘솔로 만들고,


WPF로 클라이언트로 만들어서 서로 문자열을 주고 받고 있는데,




ABCD라는 문자열을 받아와서,


ABCD라는 또 다른 문자열과 아무리 비교를 해봐도 자꾸만 다르다고 나왔다.




결국 클라이언트에서, 서버에서 받아온 문자열과, 직접 동일하게 타이핑하여 입력한 문자열 두개의 length값을 비교하니


그 값이 1 차이가 있다는 것을 알 수 있었다.




개행문자나 이런쪽 문제인 것으로 추정은 하였으나, 정확한 원인은 몰랐으며 결국 커뮤니티에 질문을 하고서야,


아스키 코드로 찍어봐라는 답변을 받고 찍어봤더니


0x3f
?


라는 것이 문자열 앞에 삽입되서 들어오는 현상이 있다는 것을 확인할 수 있었다..




이유는 여전히 모르겠지만, 아스키코드로 찍어보지 않았다면 해결 못했을지도 모르겠다.

10진법 (Decimal) 숫자를 2진법 (Binary) 로 변환하는 방법은 꽤 많다.


그리고 목적에 따라 더더욱 많아진다.


단순하게 출력만 할 것이라면 재귀등으로 나누면서 구현도 가능하지만,


이럴 경우 해당 값을 직접적으로 이용은 할 수 없다.



#include <bitset> 을 필요로 한다.


string binary = bitset<2진법_표기_갯수>(10진법_숫자).to_string();


이렇게 하면 가장 간단한 형태가 된다.


다만, 여기서 함정이 하나 있다면, 바로 위에서 한글로 표기한 2진법_표기_갯수 라는 공간에 어떠한 숫자를 넣냐에 따라 결과가 달라진다.


2진법으로 계산은 맞긴 한데, 표기가 달라진다.




숫자 10을 2진법으로 표기시


1010 이 된다.


그런데 위 코드를 아래와 같이 이용한다면


string binary = bitset<6>(10).to_string();


001010


string binary = bitset<8>(10).to_string();


00001010


이런식으로 숫자입력에 따라 앞에 0이 몇 개가 더 붙는지가 결정된다.




위와 같이 앞에 0 표기가 필요하다면 이게 가장 간편하지만, 종종 0이 없이 매번 값에 따라 유동적인 표기를 원하는 경우도 있다.

쉽게 말하면 앞에 0으로 시작되는 2진법은 필요가 없는 형태가 그것이다.


그 경우 아직 위와 같이 한 줄로 되는 코드를 찾지는 못했지만,


아래와 같은 함수를 만들어 볼 수 있다.


#include <string>
#include <sstream>


가 필요하다.




string convertToBinary(int number)
{
 string ans;
 while (number > 0)
 {
  stringstream tempstream;
  tempstream << number % 2;
  string temp(tempstream.str());
  ans.append(temp);

  number = number / 2;
 }

 reverse(ans.begin(), ans.end());
 return ans;
}





숫자 배열로 구현한거랑 사실 큰 차이는 없다.


string 으로 출력하기 위해서 위와같은 형태를 했을 뿐이다.







'Resume > English' 카테고리의 다른 글

Hyunmin_Cho_Eng_with-Photo_Resume_170131  (0) 2016.09.25


'Resume > English' 카테고리의 다른 글

Hyunmin_Cho_Eng_Text-Only_Resume_170131  (0) 2016.09.25


'Resume > 한글' 카테고리의 다른 글

Hyunmin_Cho_Kor_Text-Only_Resume_170131  (0) 2016.09.25



'Resume > 한글' 카테고리의 다른 글

Hyunmin_Cho_Kor_with-Photo_Resume_170131  (0) 2016.09.25


'Verification' 카테고리의 다른 글

OPIC IL  (0) 2016.09.25
MCAS EXCEL 자격증  (0) 2016.09.25

+ Recent posts