Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. 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
PM Quote