Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
App. WinForms / WPF .NET
Vb 2005 - Picture BOX in Centimetri
mercoledì 17 giugno 2009 - 11.15
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
dream
Profilo
| Newbie
36
messaggi | Data Invio:
mer 17 giu 2009 - 11:15
Ciao a tutti.
Ho la necessità di visualizzare su un form una picture box in cm.
Dovendo stampare su delle tesserine, vorrei che nella picture box venga visualizzata l'immagine con le dimenzioni effettive (praticamente se la tessera è di 8 cm X 4 cm, vorrei che la picture box sia di 8x4 cm).
Il mio problema è che non riesco a fare la conversione in cm in modo che in ogni schermo la picture box sia sempre della stessa dimkenzione in cm.
Grazie
Jeremy
Profilo
| Guru
1.527
messaggi | Data Invio:
mer 17 giu 2009 - 19:59
http://lmgtfy.com/?q=convertire+cm+in+pixel
dream
Profilo
| Newbie
36
messaggi | Data Invio:
gio 18 giu 2009 - 09:42
Seguendo il tuo link ho trovato questo:
i dpi sono punti per pollici, quindi 300 dpi significa che ogni pollice (2,54 cm) contiene 300 pixel.
A questo punto per sapere quanti pixel stanno in un 70x100 cm basta che trasformi la misura in pollici (27.6x39.4 in) e la moltiplichi per 300 (che è il numero di pixel contenuto in ogni pollice).
27.6x300=8280 pixel
39.4x300=11820 pixel
Quindi ho ricavato i dpi del mio monitor così:
Dim g As Graphics = Me.CreateGraphics
PPIX = g.DpiX 'Pixels per Inch
PPIY = g.DpiY
Ho ottenuto il valore 96 che corrisponde con il valore indicato dal pannello di controllo della scheda video.
Ora volendo avere una picture box di 8x5 cm ho fatto così:
PICTUREbOX.Width = 8 /2.54 * 96
PICTUREbOX.Height = 5/2.54 * 96
ma la picture box mi viene molto più larga e molto più alta.
Ho ottenuto dei valori migliori considerandi i dpi a 72 invece che i reali 96 ma solo migliori e non precisi.
Devo tenere conto anche della risoluzione o solo dei DPI?
Inoltre dovrei stampare su una stampante di CARD ( cim k300 vista da win come eltron p310 collegata con cavo parallelo) mediante il driver di windows.
La comunicazione avviene giustamente e riesco a stampare delle stringhe. il problema è che non riesco a mandare l'immagine alla stampante con le giuste dimenzioni.
Questo è il mio codice:
Private Sub cmdStampa_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdStampa.Click
If PrintDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then
Print.PrinterSettings = PrintDialog1.PrinterSettings
MyPrint.Print()
End If
End Sub
Private Sub MyPrint_PrintPage(ByVal sender As System.Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles MyPrint.PrintPage
e.Graphics.DrawImage(Me.pbTessera.Image, 2, 5, Me.pbTessera.Image.Width, me.pbTessera.Image.Height)
end sub
La tessera ha un formato di 8.4 x 5.5 cm.
Scusate se non mi sono spiegato bene.
Grazie ancora per l'aiuto
dream
Profilo
| Newbie
36
messaggi | Data Invio:
ven 19 giu 2009 - 10:39
C'è qualcuno che sa aiutarmi per favore?
alexmed
Profilo
| Guru
1.186
messaggi | Data Invio:
ven 19 giu 2009 - 17:43
Ciao
Questo ti dà le dimensioni del foglio preimpostato, in questo caso un A4
MsgBox(Me.PrintDocument1.DefaultPageSettings.PaperSize.Width)
MsgBox(Me.PrintDocument1.DefaultPageSettings.PaperSize.Height)
ora prova a dividere per 0.254 le dimensioni di prima
MsgBox(Me.PrintDocument1.DefaultPageSettings.PaperSize.Width * 0.254)
MsgBox(Me.PrintDocument1.DefaultPageSettings.PaperSize.Height * 0.254)
otteniamo i millimetri. Giusto?
Ora se vuoi stampare con quelle dimensioni non ti resta che fare la trasformazione:
Dim tesseraW As Integer = 84 / 0.254
Dim tesseraH As Integer = 55 / 0.254
e.Graphics.DrawImage(Me.pbTessera.Image, 2, 5, tesseraW, tesseraH)
Questo per la stampa.
Su monitor non mi preoccuperei troppo ed andrei a impostare delle dimensioni di:
Width (84 * 0.254) = 331
Height (55 *0.254) = 216
Ciao
alexmed
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !