DCMTK 3.6.7 버전을 VisualStudio 2022로 빌드하는 방법에 대해 알아봅니다.

 

 

 

0. Pre-compiled Libs

 

vcpkg를 이용하면 간단히 pre-compiled libs를 다운로드할 수 있습니다. 

 

 

다만, 검색하면 3.6.7 버전으로 나오지만 실제 install을 시도하면 3.6.6#3 버전이 다운로드됩니다.

 

 

 

1. Source code 및 라이브러리 다운로드

 

DCMTK 공식 홈페이지로 이동해 소스코드를 다운로드합니다.

 

https://dicom.offis.de/en/dcmtk/dcmtk-software-development/

 

Software Development based on DCMTK - dicom.offis.de

DCMTK 3.6.7 Documentation in HTML Format (25,144 KiB)

dicom.offis.de

 

위 페이지에서 DCMTK 3.6.7 - Source Code and Documentation (2022-04-28)에 해당하는 소스 코드를 다운로드합니다.

 

이후 동일 페이지 아래에 있는 DCMTK 3.6.7 - Support Libraries for Windows에서 필요한 라이브러리를 다운로드합니다.

 

이 글에선 VisualStudio 17 2022에서 "MD" 옵션으로 DCMTK를 빌드할 예정이므로 다음 파일을 다운로드합니다:  "Pre-compiled libraries for Visual Studio 2022 (MSVC 17.0), 64 bit, with icu4c, with "MD" option"

 

 

 

2. CMake Configure & Generate

 

편하게 CMake gui를 열고 소스코드와 빌드폴더를 지정합니다.

 

이후 Configure 버튼을 클릭해 VisualStudio 17 2022와 x64를 선택한 뒤 구성을 진행합니다.

 

 

구성이 완료된 뒤 위와 같이 Advanced 체크박스를 클릭해 모든 옵션을 확인합니다.

 

다음과 같이 구성을 "MT"에서 "MD"로 변경합니다.

 

 

이와 함께 "DCMTK_OVERWRITE_WIN32_COMPILER_FLAGS"를 체크해제 합니다. 해당 옵션이 체크되어 있으면 기껏 바꾼 MD옵션이 무시됩니다.

 

 

이제 라이브러리를 연결합니다. 다음과 같이 필요한 라이브러리를 선택해 줍니다.

 

 

선택한 라이브러리가 위치한 경로를 지정합니다.

 

해당 경로는 앞서 받은 라이브러리를 압축 해제한 경로를 지정해 주면 됩니다.

 

저는 사진과 같이 dcmtk 소스 폴더 내에 external 폴더를 만든 뒤 그 안에 압축을 해제해 두었습니다.

 

여기까지 완료되면 이제 Generate 버튼을 클릭해 VisualStudio 17 2022를 위한 sln 파일을 생성합니다.

 

 

 

3. Solution builld.

 

CMake에서 Generate가 완료된 뒤 빌드 폴더로 이동하면 sln 파일이 생성된 걸 확인할 수 있습니다.

 

 

해당 파일을 열어 ALL_BUILD 프로젝트를 빌드합니다.

 

 

빌드가 정상적으로 진행되는 것을 확인할 수 있습니다.

 

 

제가 구성한 코드는 다음 깃헙 페이지에서 확인할 수 있습니다: smoh-dev/dcmtk-3.6.7

 

GitHub - smoh-dev/dcmtk-3.6.7: Built VS17 with MD option.

Built VS17 with MD option. Contribute to smoh-dev/dcmtk-3.6.7 development by creating an account on GitHub.

github.com

 

 

 

References

[DCMTK] Source Code 빌드 방법 정리

 

[DCMTK] Source Code 빌드 방법 정리

1. 파일 다운로드 DCMTK 3.6.6 Source Code dcmtk-3.6.6-win64-support-MD-iconv-msvc-15.8 cmake-3.14.3-win64-x64.exe 2. CMake 진행 Source Code와 Build Binaries 경로 설정 Configure 클릭하여 컴파일러 버전(x64 / x86) 선택 MT 옵션들을

benstagram.tistory.com

Setup DCMTK with CMake for C++ and Visual Studio 2019 development

 

Setup DCMTK with CMake for C++ and Visual Studio 2019 development

DCMTK consists of a set of libraries and applications that implement a large part of the DICOM standard, which contains functionality to…

brandres.medium.com

 

 

 

 

 

 

반응형

 

Nuphy Air60 구입 후 사용한 지 벌써 1년이 지났습니다. 그 사이에 NuPhy에서 다양한 키보드를 발매했고 그중 Halo75가 마음에 들어 구매하게 되었습니다.

 

 

 

1. 서론

 

소득공제 환급금으로 지른 키보드입니다. 이번에는 와디즈 펀딩으로 구매하게 되었습니다. 

 

 

이번 와디즈 펀딩은 엔인원 이라는 회사가 담당했나 봅니다. Halo75 이후 진행되는 Halo96과 Air75도 같은 회사에서 진행하는 걸 보니 국내 담당은 엔인원인가 봅니다.

 

펀딩 결제는 23년 02월 27일 진행하였고 두 달 정도 지난 23년 04월 25일 오늘 배송받았습니다. 구매 제품은 "Halo75 화이트 프레임+나이트 브리즈 스위치(리니어)"와 "Halo75 전용 화이트 아크릴 팜레스트"입니다. 총 구매 금액은 배송비까지 22만 900원입니다.

 

 

두 달간의 기다림 끝에 제품을 받아 볼 수 있었습니다.

 

 

 

2. 본론

 

 

이번에도 캐틱터가 그려져 있는 박스가 왔습니다. 특이한 게 공식 홈페이지 제품 설명에는 캐릭터가 공개가 안되어 있습니다. 제품을 구매하고 박스를 봐야 캐릭터가 그려져 있어요. 혹시 Halo75와 Halo96 캐릭터가 다른 지도 궁금하네요.

 

 

본품입니다. 내부에 스티커가 동봉되어 있습니다.

 

 

이전과 마찬가지로 설명서&포스터가 동봉되어 있습니다. 포스터를 뒤집으면 설명서가 있습니다.

 

 

이전제는 봉지에 담겨있던 추가 제품이 좀 더 세련되게 액세서리 키트로 변경되었습니다. 윈도, 맥 호환에 알맞게 기본 키캡은 맥용이고 윈도 키캡이 포함되어 있습니다.

 

키캡도 지원하는 키캡 모두 하나씩 포함되어 있습니다. 좌상단부터 나이트 브리즈, 로즈 글래시어 그 아래 좌측부터 베이비 라쿤, 베이비 캥거루입니다. 나머지 세 개는 설명할 필요가 없어 보이고 베이비 라쿤과 캥거루도 게이트론 스위치이므로 별도로 설명하지 않겠습니다.

 

 

NuPhy만의 독특한 키캡으로 나이트브리즈와 로즈글래시어가 있습니다. 저는 키압이 1g이라도 낮은 걸 선호하기 때문에 나이트 브리즈로 선택하였습니다. 테스터 스위치로 비교를 해봤는데 확실히 부드러운 느낌이 있으며 로즈 글레이셔는 키압까지 어느 정도 버티다 쑥 눌리는 기분이었습니다. 

 

 

무선 리시버가 액세서리 키트에 없어서 한참 찾았습니다. 저기 구멍에 본품에 낄 수 있게 되어있습니다. 내부는 자석으로 되어있어서 쉽게 빠지지 않습니다. 개인적으로는 2.4G 무선 연결을 선호하기 때문에 Air60를 사용할 때 별도로 들고 다녀야 하는 불편함이 있었는데 이렇게 바뀐 건 맘에 드는 변화입니다.

 

우측의 스위치는 기존과 동일합니다. 윈도/맥 전환, 전원 Off, 유선연결, 무선연결 전환 스위치 그리고 C타입 유선연결 포트가 있습니다. Air는 측면에 있었는데 후면으로 이동했네요. Air를 연결할 땐 ㄱ자 C타입 선이 아니면 불편했는데 후면으로 이동해 더 좋아졌다고 생각합니다.

 

 

이상이 동봉된 제품의 전부입니다. 공식 홈페이지의 스펙을 봐도 누락 없이 다 포함되어 있었습니다.

 

 

전 후면 사진입니다. 후면에는 2단 높이 조절이 가능하게 되어있습니다. 플레이트는 Air보다는 확연히 작아진 모습니다. 연결 후 라이트가 들어오는 모습입니다. 특이한 게 백라이트, 헤일로라이트, 사이드라이트 총 세 개의 라이트가 있습니다.

 

 

백라이트는 일반적이 키보드의 라이트입니다. 키캡 뒤에서 빛이 납니다. HaloLight는 키보드테두리의 라이트입니다. 하우징 테두리를 따라 라이트가 있는데 이게 변합니다. 또한 키보드 모서리(F1~Ins와 같은 겉의 라이트)의 라이트도 함께 변합니다. 사실 하우징 테두리의 라이트는 눈에 잘 안 띄는데 팜레스트와 어두운 곳에서는 확실히 존재감을 내뿜습니다.

 

 

백라이트는 끄고 헤일로 라이트만 킨 채로 팜레스트를 사용한 모습입니다. 확실히 아름답네요. 마지막으로 사이드 라이트는 이것저것 테스트 해보았으나 어떤 게 변하는지 아직 확인을 못한 상태입니다. 사실 옆에 테두리의 라이트가 사이드 라이트인 줄 아았으나 헤일로 라이트에 연동되어 있습니다. 사이드라이트는 확인한 뒤 다시 포스팅을 업데이트하겠습니다

 

 

팜레스트의 경우 추가로 언급할 내용이 많이 없습니다. 다만 일반적인 텐키리스 사이즈보다 좀 더 작게 Halo에 커스텀 된 사이즈를 가집니다. 팜레스트에는 밀림 방지 패드가 여분으로 하나 더 있습니다.

 

 

 

3. 비교

 

처음 제품을 받고 든 생각은 제품이 생각보다 높다는 것입니다. 이를 위해 다른 키보드와의 비교 사진을 찍어봤습니다.

 

 

우선 NuPhy Air60과의 비교입니다. 확연히 차이나는 모습입니다. 사진으로만 봐도 확실히 Halo가 높은 것을 확인할 수 있습니다.

 

높이 하면 생각나는 키크론제품과도 비교해 보았습니다.

 

 

이게 참 특이한데 키보드의 위로가면 갈수록 키크론과의 차이가 없어집니다. 즉 가장 위쪽은 키크론과 높이가 동일하다고 보면 됩니다. 근데 아래로 내려오면서 NyPhy의 높이가 더 낮아집니다. 맨 아래에 내려와선 NuPhy의 높이가 더 낮습니다.

 

사실 둘 다 높은 느낌이지만 이 조금의 차이만으로도 꽤나 다른 느낌이 듭니다. 키크론 키보드의 경우 함께 판매하는 팜레스트 없이는 진짜 못쓸 정도라고 느꼈지만 NuPhy는 그래도 못쓸 정돈 아니다는 느낌입니다. 물론 손바닥을 바닥에 붙인 채로 타자를 치는 건 둘 다 불가능하다고 생각하면 됩니다.

 

또 NuPhy가 디테일에 신경 썼다고 느끼는 부분이 바로 팜레스트의 높이입니다. 사진에서 보듯이 키크론의 팜레스트는 끝이 오히려 낮아지면서 키보드와의 높이차가 꽤나 있는 것을 확인할 수 있습니다. 반면에 NuPhy Halo의 팜레스트는 높이가 지속적으로 높아져 키보드랑 맞붙는 부분의 높이차가 1-2mm 내로 일체감이 있습니다. 이 덕에 좀 더 편안하게 사용할 수 있었습니다. 

 

 

 

4. 결론

 

 

확실히 이쁩니다. 그리고 어색합니다. 

 

사실 저는 이 전에도 흔히 단무지키보드라고 하는 Ducky One3 노란색 SF 배열을 사용했었습니다. Halo도 이와 비슷하게 특수키들이 오른쪽에 일렬로 몰려있습니다. 처음 사용할 때 PgDn키와 우측 방향키를 함께 누르고 있었고 Del키도 위치가 어색한 게 느껴집니다.

 

스위치의 키감이 맘에 듭니다. 키감은 온전히 개인 취향의 영역이므로 추천드리기 힘들지만 여유가 되거나 기회가 된다면 NuPhy의 커스텀 키캡을 선택하는 것을 추천드립니다. 물론 공홈에서는 둘 다 품절입니다. 인기를 반증하는 것처럼 보이네요.

 

블루투스, 유선. 2.4g 무선을 지원하는 점도 강점입니다. 사실 NuPhy와 싱크웨이x토체티 콜라보 키보드 말곤 세 가지 연결을 모두 지원하는 키보드는 본 적이 없을 정도입니다.

 

 

소음이 없습니다. 물론 스위치에서 나오는 특유의 타건음은 있지만 그 외 스태빌에서 나오는 소음이나 통울림이 없습니다. NuPhy에서는 두 겹의 실리콘패드로 통울림을 잡고 고스트바라는 시스템으로 스페이스에서 나는 소음을 한번 더 잡았다고 합니다. 확실히 타건음 외의 소리는 없다시피 합니다. 

 

 

메인 키보드로 추천할만한 키보드입니다. 주변인에게 여유가 있다면 이 키보드를 추천하고 싶을 정도입니다. 다만 일반적인 TKL 키보드와 사이즈와 배열이 다른 것은 감안해야 합니다.

 

 

 

다른 키보드 리뷰

 

https://smoh.tistory.com/384

 

Keychron K8 - 키크론 K8 텐키리스 87키 구매 후기.

키크론 K8을 구매하게 되어 사용 후기를 남기고자 합니다. 1. 선택한 이유. 코로나 전까지만 해도 별문제 없이 잘 살고 있었습니다. 집에선 윈도우 데스크톱을 쓰고 공부나 개발을 할 땐 카페에

smoh.tistory.com

 

https://smoh.tistory.com/465

 

NuPhy Air60 구매 및 사용 후기

NuPhy Air60 구매 및 사용 후기를 남겨봅니다. 다른 후기들은 다 Air75길래 포커 배열은 인기가 없나 했더니 와디즈 펀딩이 Air75였군요. 1. 서론 사실 이번 키보드 구매는 반쯤 충동적이었습니다. 때는

smoh.tistory.com

 

https://smoh.tistory.com/447

 

씽크웨이 토체티 BW D&T 콜라보 K320w 구매 후기

0. 앞선 글. 사무실에서 5년간 애지중지 쓰던 무접점 키보드가 마침내 돌아가셨습니다. 완전 먹통은 아니고 사용하면서 불편함이 좀 있는 정돈데 오래 쓸 만큼 썼고 새로운 키보드도 써보고 싶고

smoh.tistory.com

 

 

반응형

 

DICOM 태그를 다루던 중 태그 타입에 1C라고 적혀있는 걸 보고 문득 TagType의 정확한 정의가 궁금해져서 알아본 후 작성한 글입니다.

 

 

 

Data Element Type

 

 

DICOM에서 태그 타입 ‘1C’는 조건적으로 필수인 타입 1이지만 비어있거나 존재하지 않을 수 있는 타입 2가 포함된 데이터 요소입니다.

 

다른 말로 태그 타입 ‘1C’는 데이터 요소가 필수로 DICOM 객체에 나타나야 하지만 특정 환경이나 다른 연관된 태그의 값에 따라 값을 가지고 있지 않을 수 있는 태그 타입을 가리킵니다. 만약 연관된 데이터 요소가 특정 값을 갖는다면 ‘1C’ 데이터 요소는 반드시 값을 가져야 하지만 연관된 데이터 요소가 특정한 값을 갖지 않는 다면 ‘1C’ 데이터 요소는 값을 빈값으로 갖거나 태그가 없을 수 있습니다.

 

DICOM 표준에서는 세 개의 데이터 요소 타입을 정의하고 있습니다:

  • 타입 1: 값을 반드시 가져야 하는 필수 요소.
  • 타입 2: 다른 연관된 요소에 따라 값을 가질 수도 가지지 않을 수도 있는 조건적으로 필요한 요소
  • 타입 3: 값을 가질 수도 가지지 않을 수도 있는 선택적 요소.

 

'1C' 태그 타입은 유형 1과 유형 2의 조합으로, 특정 조건에서는 요소가 값을 가져야 하지만 다른 조건에서는 비어 있거나 존재하지 않을 수 있는 태그 타입입니다. DICOM 파일을 읽거나 쓸 때 '1C' 데이터 요소를 올바르게 처리하여 해당 요소에 대해 정의된 조건에 따라 데이터가 적절하게 해석되고 처리되도록 해야 합니다.

 

 

참조

https://dicom.nema.org/medical/dicom/current/output/chtml/part05/sect_7.4.html

https://dicom.nema.org/medical/dicom/current/output/chtml/part05/sect_7.4.2.html

https://dicom.nema.org/medical/dicom/current/output/chtml/part05/sect_7.4.3.html

https://dicom.nema.org/medical/dicom/current/output/chtml/part05/sect_7.4.5.html

 

 

 

 

반응형

+ Recent posts