안녕하세요.
수직해상도와 수평해상도가 서로 다른 시스템에서 이미지가 정상적으로 보이지 않는 문제가 있어서 문의드립니다.
한글 XP에서 보면 해상도가 91 * 91 로 같은 값으로 설정이 되어 있구요.<첨부파일1>
영문 XP에서 보면 해상도가 69 * 81 로 서로 다른 값이 설정되어 있거든요.<첨부파일2>
이 값이 모니터 설정(해상도)에 따라 다른 값으로 바뀌고 있습니다.
그런데 문제는 제가 카드이미지를 디자인해서 인쇄를 하는 프로그램을 하나 제작했는데요..
이 프로그램에서 원을 하나 그리면 가로 세로가 같은 값으로 설정된 시스템에서는 정상적으로 원으로 나오는데요.
가로세로가 서로 다른 값으로 설정된 시스템에서는 타원으로 보여진다는 겁니다.
그런데 인쇄를 하면 모두 원으로 정상인쇄가 되구요.
그래서 이것을 가로세로 해상도와 상관없이 정상적으로 보여지도록 해야 하는데요.
이런 걸 처리하는 방법이 있는건지?
혹은 위의 서로 다른 수직, 수평 해상도를 구해서 보상 처리를 해서 그려줘야 하는건지?
그렇다면 저 값을 구하려면 어떻게 해야 하는지? 등등이 궁금합니다...
저 값을 구해보기 위해 여러가지 값들을 읽어봤는데요.
DC := Canvas.Handle;
BPP := GetDeviceCaps(DC, BITSPIXEL);
H := GetDeviceCaps(DC, HORZRES);
V := GetDeviceCaps(DC, VERTRES);
LX := GetDeviceCaps(DC, LOGPIXELSX);
LY := GetDeviceCaps(DC, LOGPIXELSY);
PX := GetDeviceCaps(DC, PHYSICALWIDTH);
PY := GetDeviceCaps(DC, PHYSICALHEIGHT);
POX := GetDeviceCaps(DC, PHYSICALOFFSETX);
POY := GetDeviceCaps(DC, PHYSICALOFFSETY);
하나도 해당되는 값이 없네요. LX, LY 값을 96 이라고만 나오구요...ㅜ.ㅡ
해결 방법좀 알려주세요..
감사합니다.