Rikisonny (Ex-Member)
Rookie
Messaggi: 59
Iscritto: 07/11/2007
|
avrei bisogno di catturare una immagine di un label in vb .net per riprodurla su un picturebox... cioè io scrivo qualcosa in un textbox che poi premendo un pulsante viene modificata la scritta e mandata al label modificata ma ora vorrei che il contenuto del label fosse salvato sotto forma di immagine... è possibile??
Ultima modifica effettuata da Rikisonny il 01/02/2010 alle 23:54 |
|
Gianluca87 (Ex-Member)
Expert
Messaggi: 300
Iscritto: 16/11/2008
|
certo...ma prelevando solo il testo e incollandolo dentro l'immagine che crei...
Codice sorgente - presumibilmente C# / VB.NET |
Bitmap myBitmap = new Bitmap(100, 100);
Graphics g = Graphics.FromImage(myBitmap);
g.DrawString("TESTO DA INSERIRE", new Font("Tahoma", 10), Brushes.Black, new PointF(0, 0));
pictureBox1.Image = myBitmap;
|
|
|
Iohoilpotere (Ex-Member)
Pro
Messaggi: 80
Iscritto: 13/09/2009
|
Dato che l'hai chiuesto in VB.NET (come da titolo) eccolo:
Codice sorgente - presumibilmente VB.NET |
Dim myBitmap As New Bitmap(100, 100) Dim g As Graphics = Graphics.FromImage(myBitmap) g.DrawString("TESTO DA INSERIRE", New Font("Tahoma", 10), Brushes.Black, New PointF(0, 0)) pictureBox1.Image = myBitmap
|
|
|
Rikisonny (Ex-Member)
Rookie
Messaggi: 59
Iscritto: 07/11/2007
|
Grazie mille il codice funziona... anzichè "testo da inserire" ho messo label1.text visto che vorrei che il label apparisse nella picturebox... l'unico problema è che il label varia in base a un textbox infatti se nella textbox cè una scritta il label appare o in grassetto o in corsivo o con un font o con un altro ma in questo modo il font è sempre lo stesso.. come faccio ad impostare font e tutto dal label?? rendere proprio il label in sè come immagine?? con sfondo colori e tutto?
|
|
Iohoilpotere (Ex-Member)
Pro
Messaggi: 80
Iscritto: 13/09/2009
|
questa richiesta è più problematica << prova con una serie di if tipo:
Codice sorgente - presumibilmente VB.NET |
If Label1.Font.Bold = True Then g.DrawString("TESTO DA INSERIRE", New Font("Tahoma", 10, FontStyle.Bold), Brushes.Black, New PointF(0, 0)) ElseIf Label1.Font.Italic = True Then g.DrawString("TESTO DA INSERIRE", New Font("Tahoma", 10, FontStyle.Italic), Brushes.Black, New PointF(0, 0)) End If
|
ma nn credo vadi <<
Ultima modifica effettuata da Iohoilpotere il 03/02/2010 alle 15:54 |
|
Rikisonny (Ex-Member)
Rookie
Messaggi: 59
Iscritto: 07/11/2007
|
da 2 errori..:
Errore 1 'FontStyle' è un tipo e non può essere utilizzato come espressione.
(penso di averlo risolto metto dim FontStyle as fontstyle
Errore 2 'fontstyle' non è un membro di 'System.Windows.Forms.Label'.
|
|
Alfonso (Ex-Member)
Guru
Messaggi: 688
Iscritto: 30/09/2009
|
E fare una cattura dello schermo limitata alle coordinate della label?
|
|
Iohoilpotere (Ex-Member)
Pro
Messaggi: 80
Iscritto: 13/09/2009
|
sarebbe una saggia scelta, se sapessi farlo l'avrei consigliato
|
|
Alfonso (Ex-Member)
Guru
Messaggi: 688
Iscritto: 30/09/2009
|
Per provare mettere una PictureBox nella Form1
Codice sorgente - presumibilmente VB.NET |
Public Class Form1 <System.Runtime.InteropServices.DllImportAttribute("gdi32.dll")> _ Private Shared Function BitBlt(ByVal hdcDest As IntPtr, ByVal nXDest As Integer, ByVal nYDest As Integer, ByVal nWidth As Integer, ByVal nHeight As Integer, ByVal hdcSrc As IntPtr, ByVal nXSrc As Integer, ByVal nYSrc As Integer, ByVal dwRop As System.Int32) As Boolean End Function Public Sub Cattura(ByVal Fr As Form, ByVal Ctrl As Control) Me.Show() Dim g1 As Graphics = Fr.CreateGraphics() Dim MyImage As New Bitmap(Ctrl.Width, Ctrl.Height, g1) Dim g2 As Graphics = Graphics.FromImage(MyImage) Dim dc1 As IntPtr = g1.GetHdc() Dim dc2 As IntPtr = g2.GetHdc() BitBlt(dc2, 0, 0, Ctrl.Width, Ctrl.Height, dc1, Ctrl.Left, Ctrl.Top, 13369376) g1.ReleaseHdc(dc1) g2.ReleaseHdc(dc2) PictureBox2.Image = MyImage MyImage.Save("d:\Catturato.bmp", Imaging.ImageFormat.Bmp) End Sub End Class
|
Codice per richiamare la cattura:
Form1.Cattura(Me, Label1)
|
|