2011-10-13 1 views
1

나는 이런 것들을 잘 사용했지만 오래 전이었습니다!SetDIBitsToDevice, StretchDIBits, VB6

내가 잘 작동하는 프레임 그래버를위한 샘플 프로그램을 가지고, 그것은의 PictureBox에 이미지를 표시 (다른 물건 후)이 줄을 사용

SetDIBitsToDevice (Picture1.hdc, 0, 0, gSizeX, gSizeY, 0, 0, 0, gSizeY, gSurfAddr, bmpInfo, DIB_RGB_COLORS)

스케일링 된 이미지를 만들 수 있도록이 설정을 변경하면됩니다. 그래서이 라인 변경 :

StretchDIBits (H, w Picture1.hdc, 0, 0, 0, 0, gSizeX, gSizeY, gSurfAddr, bmpInfo, DIB_RGB_COLORS, vbSrcCopy) .. w 및 h 인 내가 원하는 이미지의 치수 (나는 처음에 gSizeX/y와 같은 시도, 약 700 * 500).

하지만 이미지가 없거나 때로는 흰색이 나타나기도하고 때로는 초기화되지 않은 메모리처럼 보입니다.

간단한 실수를했거나 더 많은 것을해야합니까?

감사

답변

1

봅니다 StretchDIBits 전에 SetStretchBltMode를 호출합니다. 때때로 크기 조정이 SetStretchBltMode없이 제대로 작동하지 않습니다. 파라미터 : COLORONCOLOR (고속 사이즈 변경), HALFTONE (고품질 사이즈 변경).

http://msdn.microsoft.com/en-us/library/dd145089(v=vs.85).aspx

+0

고마워, 나는 그것을 시도했지만 동일합니다. 그것은 이제 다음과 같습니다 SetStretchBltMode Picture1.hdc, 색조 StretchDIBits Picture1.hdc, 0, 0, gSizeX, gSizeY, 0, 0, gSizeX, gSizeY, gSurfAddr, bmpInfo, DIB_RGB_COLORS, vbSrcCopy는 (색조는 4) – Ianb

+0

캐리지 리턴으로 언급 할 수없는 이유는 무엇입니까? 매우 어려운 코드를 보여줍니다! – Ianb

+0

이미지를 스트레칭 할 때 이미지 왜곡을 해결하는 데 도움이 된 Alex에게 감사드립니다. – Tsikon