2011-04-20 2 views
24

RenderTargetBitmap의 DPI 매개 변수가 사용 된 것처럼 보이는 이유를 알지 못합니다.RenderTargetBitmap 및 DPI

new RenderTargetBitmap ((int) (width/96d)*dpi, (int) (height/96d)*dpi, dpi, dpi, PixelFormats.Pbgra32); 

예 :

http://blogs.msdn.com/b/jaimer/archive/2009/07/03/rendertargetbitmap-tips.aspx

ContentControl + RenderTargetBitmap + empty image

http://social.msdn.microsoft.com/forums/en-US/wpf/thread/984da366-33d3-4fd3-b4bd-4782971785f8/ 는 꽤 자주이 같은 DPI에 따라 이미지 크기를 조정하여 표준이 아닌 DPI 설정을 다루는 코드를 볼 수

dpi가 어려울 것으로 보이는 경우 그래서 같게 96 또는 다른 값으로 구분 :

new RenderTargetBitmap (width, height, 96, 96, PixelFormats.Pbgra32); 

예 :

http://www.i-programmer.info/programming/wpf-workings/538-rendertargetbitmap-visual-vector-to-bitmap.html

http://www.ericsink.com/wpf3d/3_Bitmap.html

http://dedjo.blogspot.com/2008/05/performance-appliance-of.html

How to render a checked CheckBox (Aero theme) to a RenderTargetBitmap?

또는

new RenderTargetBitmap (width, height, 120, 96, PixelFormats.Pbgra32); 

예 :

http://msdn.microsoft.com/en-us/library/system.windows.media.imaging.rendertargetbitmap.aspx

당신이 하나 하나 다른 할 것?

나중에 앱의 컨트롤과 동일한 크기로 이미지를 표시하려는 경우 (첫 번째 예와 같이) 비트 맵의 ​​크기를 조정해야한다고 말하는 것이 맞습니까?

파일로 저장할 때 고정 된 dpi를 사용하거나 너비와 높이를 조정하지 않고 다른 dpi를 사용하고 계신가요?

고정 된 크기의 파일에 컨트롤의 이미지를 저장하고 싶습니다. 그래도 여전히 dpi를 설정하거나 디폴트 96을 사용합니까?

답변

3

기본값 96은 데스크톱 디스플레이의 가장 일반적인/사용 된 dpi입니다. 하지만 그럴 것입니다/변할 수 있습니다.

를 사용하여 프로그램의 컴파일시이 있어야 비트 맵을 어떤 dpi로 알고 경우 원하는 값으로 설정할 수 있습니다 (예 : 96)을 수 솔직히, 나는 그렇게 상수를 사용하는 거라고하지만 아래로 비등 런타임에 같은.

이미지가 어떤 해상도로 필요할지 모르는 경우 dpi를 하드 코딩하면 안됩니다.

그건 그렇고 항상 이미지의 dpi를 올바르게 설정해야합니다.

+0

나는 당신을 이해하고 있는지 잘 모르겠다. 물론 DPI가 사용하는 시스템이 무엇인지 압니다. 또한 실제 시스템 dpi가 96이라고 가정하지 않는 것이 정상적이라고 생각합니다.제 질문은 시스템 dpi를 무시하고 dpi를 기준으로 이미지의 크기를 조정할시기/이유입니다. 사람들은 때때로 dpi와 다른 시간을 기준으로 이미지 크기를 조정하는 것처럼 보인다고 말합니다. –

+2

나는 당신이 틀린 가정을했다고 생각한다 : 이미지의 dpi는 현재의 시스템 dpi와 아무 관련이 없다. 이미지의 dpi는 이미지의 데이터를 사용/이해하는 방법을 지정합니다. –