- Today
- Total
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- Activity 전체화면
- 파티션 빠른 삭제
- 텍스트컬러
- MariaDB
- vc++
- rn
- 스크롤적용
- kill -9
- CentOS
- SQL 첫날
- reactnative
- 가변영역 스크롤
- MFC
- c언어
- 터치좌표 view
- 피쉬랜드
- springboot 재가동
- SQL 마지막날
- 말줌임 CSS
- CSS
- view 획득
- springboot
- sql exception
- pid 찾아 kill
- MySQL
- ffmpeg
- 코드로 서버 재실행
- Back 키 클릭 감지
- mybatis exception
- DB 계정생성
목록MFC (3)
개발은 하는건가..
HDC hDc = ::GetDC(0); FLOAT fDPIScaleX = GetDeviceCaps(hDc, LOGPIXELSX) / 96.0f; FLOAT fDPIScaleY = GetDeviceCaps(hDc, LOGPIXELSY) / 96.0f; ::ReleaseDC(0, hDc); fDPIScaleX, fDPIScaleY 에 각 가로 세로 비율이 저장되는데 보통은 가로세로 비율을 동일하게 나온다. 디스틀레이 설정에서 125% 또는 150% 로 설정했을 경우 각 1.25, 1.5 값을 반환한다. 배율되지 않은 원본 좌표가 필요할 경우 해당 좌표 / fDPIScaleX 해서 얻으면 되겠다.
별도로 생성된 스레드에서 대상 윈도우의 DC 로부터 비트맵을 복제 후 ffmpeg 으로 인코딩 하여 파일로 저장한다. const double frameInterval = 1000.0 / 30; int calcInterval = 0; BYTE *pImageData = NULL; HDC hdcMemory = NULL; BITMAPINFO *pDibBitmapInfo = &(m_DibBitmapInfo); HBITMAP hDibBitmap = NULL, hOldBitmap = NULL;; LONGLONG nFrameCnt = 0; LONGLONG nStartTs = 0; DWORD dwSleep = 0; int startX = pThis->m_TargetRect.left; int startY = pThis->..
동영상을 디코딩하여 나온 RGB raw 데이터를 DirectX 나 openGl 같은 것들을 사용하지 않고 DC 에서도 충분히 빠른 속도로 출력이 가능하다. 화면을 가득 채우는 FHD 해상도의 영상도 높지 않은 CPU 점유율을 소모하면서 30 프레임은 가능했다. 단, 조건은 영상을 디코딩 시 32bit BGRA 형태여야 한다. 그래야 출력 과정에서 RGB 데이터들을 다시 재배치하는 연산을 수행하지 않고 그대로 출력이되므로 속도가 빠르다. RECT m_rcView = { 0, 0, 1280, 720 }; // 출력 영역 BITMAPINFO*m_pBitmapInfo = NULL; // 비트맵 정보 void CVideoStreamDlg::DrawVideo(CDC *pDC, BYTE *pFrameData, UIN..