Yksinkertainen homma? En vaan osaa, mutta osaako joku?
Eli formille picturebox ja neljä Buttonia.
Kun painaa eka nappia, niin pictureboksiin ladataan kuva "C:\kuva.jpg"
Kun painaa nappia 2, niin kuvan päälle kirjoitetaan "Hello World"
Kun painaa nappia 3, niin kuvaan piirretään punaisenkukertava viiva pisteestä (100,100) pisteeseen (300,250)
Kun painaa nappia 4, niin kuva tallennetaan nimellä "C:\kuva2.jpg"
Kun katson sitten kuva2.jpg:tä jollain muulla ohjelmalla, niin SIINÄ KUVASSA NÄKYY nuo tekstit sun muut.
Käsittääkseni jotakuinkin näin:
Google -> VB.Net Load JPEG
Kuva.Image = System.Drawing.Image.FromFile("MyImage.jpg")Google -> VB.Net Draw Text PictureBox
http://vbcity.com/forums/topic.asp?tid=28582
Dim g As Graphics = Graphics.FromImage(Kuva.Image) g.DrawText() ' Katso MSDN:stä tarvittavat parametrit.
Google -> VB.Net PictureBox Line
Dim g As Graphics = Graphics.FromImage(Kuva.Image) Dim myPen As Pen = New Pen(Color.Blue, 3) g.DrawLine(myPen, 100, 100, 300, 250)
Google -> VB.Net PictureBox Save
Dim fStream As New FileStream("kuva2.jpg", _
FileMode.Create, FileAccess.ReadWrite, _
FileShare.None, 4096, True)
Kuva.Image.Save(fStream, System.Drawing.Imaging.ImageFormat.Jpeg)En ole testannut enkä takaa oikeellisuutta (ei ole VB.Netiä käsillä), mutta sen ainakin takaan, että Googlen avulla noihin löytyy varsin pienellä vaivalla vastauksia, joten etsipä itsekin.
Kiitoksia. Tässä toimiva koodi. Lisäsin vielä viidennen napin, eli Lopeta-napin.
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
PictureBox1.Image = System.Drawing.Image.FromFile("C:\kuva1.jpg")
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Dim g As Graphics = Graphics.FromImage(PictureBox1.Image)
Dim drawString As [String] = "Kukkuu" ' Create string to draw.
Dim drawFont As New Font("Arial", 16) ' Create font and brush.
Dim drawBrush As New SolidBrush(Color.Red)
Dim x As Single = 15 ' Create point for upper-left corner of drawing.
Dim y As Single = 15
g.DrawString(drawString, drawFont, drawBrush, x, y) ' Draw string to screen.
PictureBox1.Refresh() ' Tämä pitää olla
End Sub
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
Dim g As Graphics = Graphics.FromImage(PictureBox1.Image)
Dim mypen As Pen = New Pen(Color.Blue, 4)
g.DrawLine(mypen, 100, 100, 300, 150)
PictureBox1.Refresh()
End Sub
Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
PictureBox1.Image.Save("C:\kuva2.jpg")
End Sub
Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
End
End Sub
End ClassJa sitten huomio: jos lataat kuvan joka on indeksoiduilla väreillä eikä täysväreillä, piirtokomennot heittävät poikkeuksen.
Aihe on jo aika vanha, joten et voi enää vastata siihen.