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 Class
Ja 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.