Cuestión : Región visble de BitBlt

He creado un uso del dibujo de clases, generalmente cuando el usuario (yo) hace el dibujo del estándar del sa su será cerca de 8000 objetos separados de GraphicsPath en la pantalla y una imagen de fondo bitmap.

To exhibe el dibujo que he utilizado la clase de BufferedGraphics para la velocidad usar bitblt. código del

The para dibujar el m_BGContext privado del image

como m_BufferedGraphics privado de BufferedGraphicsContext
como m_ImageVisible privado de BufferedGraphics
como boleano = m_BufferedGraphics del
del

m_BufferedGraphics.Dispose del drenaje de True

() () = m_BGContext.Allocate secundarios privados (m_PicBoxGraphics, nuevo rectángulo (0, 0, PictureBox1.Width, PictureBox1.Height))el

si es m_ImageVisible extremo If

m_BufferedGraphics.Graphics.Smoothin de Then
m_BufferedGraphics.Graphics.DrawImage (m_img, 0, 0, PictureBox1.Width, PictureBox1.Height)/>gMode = SmoothingMode.AntiAlias
m_BufferedGraphics.Graphics.CompositingQuality = problema del

End Sub

The de CompositingQuality.HighQuality

m_MyDrawing.Draw (m_BufferedGraphics.Graphics) tengo es cuando enfoco el dibujo entero que está subiendo mi uso de la memoria y retardando funcionamiento, si enfoco hacia fuera él vuelvo al normal tan ningunos escapes de memoria, así que es la pregunta. Hace cualquier persona saben puedo bitblt solamente la región visible/visible del dibujo. Había hablado con un revelador y él de Java aunque tienen algo llamado un viewport que haría lo que quise si estaba en Java, pero no podría descubrir mucho sobre él e incluso si había un equivalente adentro. La red tan no sure si esto fuera una caza inútil salvaje, acaba de pensar que mencionaría it.

Anyway si éste tiene sentido a cualquier persona, agradezco por adelantado por cualquier help.

Oh y biselo el uso WPF que que pienso sería mejor pero tiene que ser GDI+ y biselo gota la calidad del

Andy
de los respetos de drawing.

Kind class= del

Respuesta : Región visble de BitBlt

Sin ver ningún código esto será bastante resistente contestar.  ¿Cómo está usted “que enfoca”?

La respuesta genérica es que USTED computa la región visible bajo la forma de rectángulo basado en SU algoritmo de enfoque y entonces utiliza GraphicsPath.GetBounds () para cada GraphicsPath y ve si el rectanlge resultante es visible usar Rectangle.Intersect ().  Si es así entonces usted dibuja que GraphicsPath en su “rinde” método…
Otras soluciones  
 
programming4us programming4us