C# 이미지 그리기, 출력

프로그래밍 언어/C# 2020. 8. 21. 14:16

그림을 출력할때, 다음과 같은 방법이 있다.

 

- 절대 경로

imgTest.Source = new BitmapImage(new Uri(@"C:\Image\test.png", UriKind.Absolute));

 

- 상대 경로

imgTest.Source = new BitmapImage(new Uri(@"\test.png", UriKind.Relative));

 

- 상대 경로(리소스)

imgTest.Source = new BitmapImage(new Uri(@"\test.png", UriKind.Relative));

 

imgTest는 이미지 도구상자 이름이다.

BitmapImage 2번째 인자는

https://docs.microsoft.com/ko-kr/dotnet/api/system.urikind?view=netcore-3.1

 

 

- 이렇게 저장해서 필요할 때 쓰기도...

BitmapImage bitTmp = new BitmapImage(new Uri(@"\Image\1.png", UriKind.Relative));

imgTeset.Source = bitTmp;

 

 

- 리소스 방식을 쓸때는 리소스에 추가해서 써야한다.

 

    리소스 관리 페이지로 들어가서

 

    리소스를 추가하고

 

    추가된 파일의 속성을 바꾸면 끝.

 

'프로그래밍 언어 > C#' 카테고리의 다른 글

C# RGB 출력, YUV420 -> RGB로 출력  (0) 2020.09.01
C# NAudio MicroPhone 볼륨 조절  (0) 2020.08.20

설정

트랙백

댓글

C# NAudio MicroPhone 볼륨 조절

프로그래밍 언어/C# 2020. 8. 20. 21:07

private void sourceStream_DataAvailable(object sender, NAudio.Wave.WaveInEventArgs e)

{

    byte[] encoded = e.Buffer;

    if (reLen + encoded.Length < 70000)

    {

        if (recordingFirstSkip > 6)

        {

            encoded.CopyTo(recordingStream, reLen);

            int i;

           float multiplier = 12.0f; // 볼륨 Gain

           for (i = 0; i < encoded.Length; i = i + 2)

           {

               Int16 sample = BitConverter.ToInt16(encoded, i);

               sample = (Int16)(sample * multiplier);

               byte[] sampleBytes = BitConverter.GetBytes(sample);

               encoded[i] = sampleBytes[0];

               encoded[i + 1] = sampleBytes[1];

            }

            encoded.CopyTo(recordingStream2, reLen);

            reLen += encoded.Length;

           }

          else

         {

              encoded.CopyTo(recordingStream, reLen);

              encoded.CopyTo(recordingStream2, reLen);

              recordingFirstSkip++;

         }

    }

}

 

 

 

 

'프로그래밍 언어 > C#' 카테고리의 다른 글

C# RGB 출력, YUV420 -> RGB로 출력  (0) 2020.09.01
C# 이미지 그리기, 출력  (0) 2020.08.21

설정

트랙백

댓글

Visual Studio 2019 한글 형식(인코딩). 유니코드, EUC-KR

프로그래밍 언어/WinApi 2020. 7. 28. 10:17

문자를 입력 받았을 경우, 한글인지 아닌지 판별하기 위하여 작업 도중,

 

WCHAR, char의 한글 형식을 같은 유니코드를 사용하고 있는 줄 알았으나

 

값이 다르게 나와서 찾아 보았다.

 

 

한글의 형식은 컴파일러마다, 운영체제마다 다르다고 한다.

 

Window10, Visual Studio 2019의 환경에서

 

WCHAR 형은 유니코드를 사용하고

 

char 형은 EUC-KR을 사용하는 것 같다.

 

ex)

    //WCHAR eee[20] = TEXT("가나하");
    unsigned char eee[20] = "가나하";
    unsigned char eee1;
    unsigned char eee2;

    eee1 = *((unsigned char*)eee + 0); 
    eee2 = *(((unsigned char*)eee) + 1); 
    TextMB::Box(eee1, eee2);

    eee1 = *((unsigned char*)eee + 2);
    eee2 = *(((unsigned char*)eee) + 3);
    TextMB::Box(eee1, eee2);

    eee1 = *((unsigned char*)eee + 4);
    eee2 = *(((unsigned char*)eee) + 5);
    TextMB::Box(eee1, eee2);

 

  유니코드 WCHAR char
AC00 00AC B0A1
B098 98B0 B3AA
D558 58D5 C7CF

 

둘 다, 두번째 바이트에 최상위 비트가 1인지 0인지 확인하면 한글 판별이 가능할 것 같다.

 

그런데 WCHAR의 값은 리틀엔디안 형식이니 반대로 나온게 맞는것 같은데,

char의 값은 그대로 나왔다. 뭐지..?

 

-- 유니코드 문자표

https://ko.wikipedia.org/wiki/%EC%9C%A0%EB%8B%88%EC%BD%94%EB%93%9C_%EC%98%81%EC%97%AD

https://ko.wikipedia.org/wiki/%EC%9C%A0%EB%8B%88%EC%BD%94%EB%93%9C_A000~AFFF

 

-- EUC-KR 문자표

https://uic.win/ko/charset/show/euc-kr/

 

-- CP949

https://charset.fandom.com/ko/wiki/CP949

 

 

EUC-KR를 찾다가 보니 CP949, KS X 1001, KS X 1003 등등 여러 인코딩이 나오던데

언급은 하지 않겠다...

https://codingdog.tistory.com/entry/cp949-vs-euc-kr-%EC%96%B4%EB%96%A4-%EC%B0%A8%EC%9D%B4%EC%A0%90%EC%9D%B4-%EC%9E%88%EB%8A%94%EC%A7%80-%EA%B0%84%EB%8B%A8%ED%9E%88-%EC%95%8C%EC%95%84%EB%B4%85%EC%8B%9C%EB%8B%A4

설정

트랙백

댓글