Diskuze: drawString obrázek překrývá text
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Člen
Zobrazeno 9 zpráv z 9.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Ahoj Michale.
Podívej se na tohle:
http://www.vb-helper.com/…re_text.html
Ty mě asi nechápeš (nic ve zlém). Ten text umím napsat (public sub napis), dokonce tam i je. Ale obrázek mi ho překryje.
Nevim jestli jsem kod správně pochoil, ale vypadáto že obrázek nastavuješ k Picturebox, misto abys ho vyresloval, mělo by stačit je nvykresli obrázek, nějak takto:
Private img As Image
Sub VygenerovatBtnClick(sender As Object, e As EventArgs)
If fontSetted = False Then
MsgBox("Musíš nastavit font!")
ElseIf imgSetted = False Then
MsgBox("Musíš nastavit obrázek!!")
Else
vygenerovano = True
obrazek.Image = obrazek.InitialImage
texty = {textBox1.Text, textBox2.Text, textBox3.Text}
If comboBox1.SelectedIndex() = 0 Then
img = vajco
ElseIf comboBox1.SelectedIndex() = 1 Then
img = zajic
ElseIf comboBox1.SelectedIndex() = 2 Then
img = kure
ElseIf comboBox1.SelectedIndex() = 3 Then
img = pomlazka
Else
MsgBox("někde se vyskytla chyba!")
Me.Close()
End If
g = obrazek.CreateGraphics
napis(0, 10, 25)
napis(1, 10, 25 + Font.Height)
napis(2, 10, 25 + (Font.Height * 2))
End If
End Sub
Sub ComboBox1TextChanged(sender As Object, e As EventArgs)
imgSetted = True
End Sub
Public Sub napis(ByVal cislo As Integer, ByVal x As Single, ByVal y As Single)
g.DrawImage(img, 0, 0)
g.DrawString(texty(cislo), Font, System.Drawing.Brushes.Black, x, y)
End Sub
Díky, funguje to. Akorát se mi zobrazuje jen poslední řádek, ale s tím si už nějak (doufám) dokážu poradit sám .
Aha, teď jsem si prohlédnul kód dúkladněji ... vykresluješ do obrazku. Trochu bych to změnil:
Private bmp As Bitmap
Sub VygenerovatBtnClick(sender As Object, e As EventArgs)
If fontSetted = False Then
MsgBox("Musíš nastavit font!")
ElseIf imgSetted = False Then
MsgBox("Musíš nastavit obrázek!!")
Else
Dim img As Image
vygenerovano = True
texty = {textBox1.Text, textBox2.Text, textBox3.Text}
If comboBox1.SelectedIndex() = 0 Then
img = vajco
ElseIf comboBox1.SelectedIndex() = 1 Then
img = zajic
ElseIf comboBox1.SelectedIndex() = 2 Then
img = kure
ElseIf comboBox1.SelectedIndex() = 3 Then
img = pomlazka
Else
MsgBox("někde se vyskytla chyba!")
Me.Close()
End If
'nevim jake maj byt velikosti
bmp = New Bitmap(img.Width, img.Height)
Dim g = Graphics.FromImage(bmp)
g.DrawImage(img, 0, 0)
napis(g, 0, 10, 25)
napis(g, 1, 10, 25 + Font.Height)
napis(g, 2, 10, 25 + (Font.Height * 2))
jmeno_vykreslovaciho_pictureboxu.DrawImage(bmp, 0, 0)
End If
End Sub
Sub ComboBox1TextChanged(sender As Object, e As EventArgs)
imgSetted = True
End Sub
Public Sub napis(g As Graphics, ByVal cislo As Integer, ByVal x As Single, ByVal y As Single)
g.DrawString(texty(cislo), Font, System.Drawing.Brushes.Black, x, y)
End Sub
Ale nevidím celej kód, když to nepomůže, tak ho sem prosim dej
Aha, už je to vyřešené ... každopádně i tak ten kód zkus radši upravit
A jsme zase u toho. Když chcu obrázek uložit, uloží se mi, ale text na něm není. Odpovězte pls do 20:30!!
Příště klikni na odpověď, spoň se spožděním, mělo by stačit, u toho 2. kódu co jsem sem dával jen:
bmp.Save("cesta")
Zobrazeno 9 zpráv z 9.