Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - Malfunzionamento nella creazione di uno
Forum - C# / VB.NET - Malfunzionamento nella creazione di uno "Screen Magnifier" [VB.NET]

Avatar
dnha (Member)
Pro


Messaggi: 137
Iscritto: 24/07/2014

Segnala al moderatore
Postato alle 19:16
Venerdì, 24/10/2014
Sto creando una specie di "Screen Magnifier" ma ho notato che zoomando l'immagine (ricavata con la funzione GetMatrix()), la prima riga e la prima colonna di pixel vengono "tagliate" e così resta un bordo a destra e in basso...
Il problema è che non capisco cosa non vada nel codice :noway:

Allego Screenshot

Codice sorgente - presumibilmente VB.NET

  1. Public Class frmMain
  2.     Private Function GetMatrix() As Drawing.Image
  3.         Dim bmp As Bitmap = New Bitmap(16, 16)
  4.         Dim g As Graphics = Graphics.FromImage(bmp)
  5.         g.CopyFromScreen(New Point(MousePosition.X - 8, MousePosition.Y - 8), New Point(0, 0), bmp.Size)
  6.         Return bmp
  7.     End Function
  8.     Private Sub PictureBox1_Paint(sender As Object, e As PaintEventArgs) Handles PictureBox1.Paint
  9.         e.Graphics.ScaleTransform(10, 10)
  10.         e.Graphics.InterpolationMode = Drawing2D.InterpolationMode.NearestNeighbor
  11.         e.Graphics.DrawImage(GetMatrix, 0, 0)
  12.         'Linee solo per test
  13.         e.Graphics.DrawLine(Pens.Black, New Point(8, 0), New Point(8, 5))
  14.         e.Graphics.DrawLine(Pens.Black, New Point(8, 11), New Point(8, 16))
  15.         e.Graphics.DrawLine(Pens.Black, New Point(0, 8), New Point(5, 8))
  16.         e.Graphics.DrawLine(Pens.Black, New Point(11, 8), New Point(16, 8))
  17.     End Sub
  18.     Private Sub tmrMain_Tick(sender As Object, e As EventArgs) Handles tmrMain.Tick
  19.         PictureBox1.Refresh()
  20.     End Sub
  21. End Class



P.S. Secondo voi è corretto ridisegnare il controllo ogni tick del timer o dovrei usare qualche altro metodo?


dnha ha allegato un file: bordi.png (40427 bytes)
Clicca qui per guardare l'immagine


“La principale differenza tra una cosa che potrebbe rompersi e una cosa che non può in alcun modo rompersi è che quando una cosa che non può in alcun modo rompere si rompe, di solito risulta impossibile da riparare.” [Douglas Adams, Praticamente innocuo]
PM Quote