Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2010
    Messaggi
    143

    [VB.NET] Scrivere testo in un'immagine e salvare il risultato

    ho letto il regolamento e spero di far meglio questa volta
    ho trovato in parte la risposta al mio problema che ho risolto
    così:

    codice:
            Dim graph1 As Graphics = PictureBox2.CreateGraphics
            Dim graph2 As Graphics = Graphics.FromImage(PictureBox2.Image)
    
            graph1.DrawString("Prova e riprova", Me.Font, Brushes.Red, 100, 100)
            graph2.DrawString("Prova e riprova", Me.Font, Brushes.Red, 100, 100)
    
            PictureBox2.Image.Save(aa & "\IMG\Prova-x.jpg", System.Drawing.Imaging.ImageFormat.Jpeg)
    così ottengo il testo sull'immagine e salvo immagine e testo

    Nota di Alka: modificato il titolo e corretto il tag CODE

  2. #2
    Utente di HTML.it
    Registrato dal
    Jan 2010
    Messaggi
    143

    evidentemente non ho capito

    come usare CODE

    SCUSATE SONO UN Pò TARDO

  3. #3
    Utente di HTML.it L'avatar di U235
    Registrato dal
    Mar 2006
    Messaggi
    1,539

    Re: [VB.NET] salvare immagine+testo 2

    Originariamente inviato da c-enrico
    ho letto il regolamento e spero di far meglio questa volta
    ho trovato in parte la risposta al mio problema che ho risolto
    così:

    [CODE ]
    Dim graph1 As Graphics = PictureBox2.CreateGraphics
    Dim graph2 As Graphics = Graphics.FromImage(PictureBox2.Image)

    graph1.DrawString("Prova e riprova", Me.Font, Brushes.Red, 100, 100)
    graph2.DrawString("Prova e riprova", Me.Font, Brushes.Red, 100, 100)

    PictureBox2.Image.Save(aa & "\IMG\Prova-x.jpg", System.Drawing.Imaging.ImageFormat.Jpeg)
    [/CODE]

    così ottengo il testo sull'immagine e salvo immagine e testo
    certo... però...
    a che ti serve graph1? a sprecare risorse?
    e se l'immagine della pictureBox è vuota?
    e se volessi riutilizzare il codice?
    Attento, scrivere nell'immagine alla posizione xy non necessariamente corrisponde alla posizione xy delle picturebox, se ad esempio l'immagine è più grande della pictureBox ed è centrata, dipende da dove scrivi la scritta manco la vedi...
    Mi sa che dovai aggiungere qualche riga di codice se vuoi fare una cosa fatta bene...


    comunque grazie per aver condiviso

    P.S.
    i tag code devi scriverli senza spazi vuoti tra le parentesi.

  4. #4
    Utente di HTML.it
    Registrato dal
    Jan 2010
    Messaggi
    143
    con graph2 salvo immagine e testo ma il testo
    non si vede sull'immagine e allora uso graph1
    per vedere il testo sull'immagine, io non
    so perchè funziona così, visto che tu dici
    che graph1 scrive sulla picturebox2, è
    possibile che l'immagine sia trasparente?
    non credo e allora non capisco ma funziona.

    P.S.
    grazie per l'aiuto
    Grazie anche ad Alka

  5. #5
    Utente di HTML.it L'avatar di U235
    Registrato dal
    Mar 2006
    Messaggi
    1,539
    Originariamente inviato da c-enrico
    con graph2 salvo immagine e testo ma il testo
    non si vede sull'immagine e allora uso graph1
    per vedere il testo sull'immagine, io non
    so perchè funziona così, visto che tu dici
    che graph1 scrive sulla picturebox2, è
    possibile che l'immagine sia trasparente?
    non credo e allora non capisco ma funziona.

    P.S.
    grazie per l'aiuto
    Grazie anche ad Alka
    Ciao,
    graph1 scrive nel graphic della picturebox, graph2 scrive nel graphic dell'immagine contenuta nella PictureBox.
    la creazione di un graphic dall'immagine è corretta, anche perchè quando andrai a salvare non dovrai riconvertire il graphic della pictureBox in immagine, quindi a questo punto, la pictureBox ti serve solo per mostrare l'immagine, non ti serve estrarre il graphic e scrivere, ti basta che dopo che hai scritto nel graphic dell'immagine reimposti l'immagine stessa dentro la picturebox per poterla vedere.

    in buona sostanza, tu lavori sull'immagine, poi quando hai terminato (hai scritto) la imposti nella picturebox.
    un buon metodo sarebbe quello di crearti una classe derivata da pictureBox che include i metodi "Salva" e "Scrivi" ecc. (o che restituisca un Graphic in riferimento da elaborare esternamente) e fa in modo che le dimensioni della pictureBox e della relativa immagine siano identiche, in modo che non hai problemi di "posizioni" oltre ad avere la certezza che l'immagine in cui scrivi non sia mai vuota (ti basta controllare che nella derivata quando Image e vuota, crei una bitmap di pari dimensioni della pictureBox), in questo modo potrai anche riutilizzare facilmente il codice.

    Inoltre, fai sempre il Dispose dei graphic creati.

  6. #6
    Utente di HTML.it
    Registrato dal
    Jan 2010
    Messaggi
    143
    tu dici:
    "ti basta che dopo che hai scritto nel graphic dell'immagine reimposti l'immagine stessa dentro la picturebox per poterla vedere"

    per fare questo mi mandi una riga di codice? Grazie!

  7. #7
    Utente di HTML.it L'avatar di U235
    Registrato dal
    Mar 2006
    Messaggi
    1,539
    Originariamente inviato da c-enrico
    tu dici:
    "ti basta che dopo che hai scritto nel graphic dell'immagine reimposti l'immagine stessa dentro la picturebox per poterla vedere"

    per fare questo mi mandi una riga di codice? Grazie!
    mettiamo che l'immagine di cui lavori il graphic si chiami "Image", e la tua pictureBox sia "PictureBox2" :

    codice:
    PictureBox2.Image = Image
    oppure molto sepmlicemente usi un refresh() della pictureBox (se usi la stessa immagine)

  8. #8
    Utente di HTML.it
    Registrato dal
    Jan 2010
    Messaggi
    143
    funziona perfettamente!!!! Grazie mille!!!!

  9. #9
    Utente di HTML.it L'avatar di U235
    Registrato dal
    Mar 2006
    Messaggi
    1,539
    Originariamente inviato da c-enrico
    funziona perfettamente!!!! Grazie mille!!!!
    figurati...



    P.S.
    Ricordati che c'è differenza tra una cosa fatta bene e una cosa che funziona... la cosa che funziona, è molto probabile che in condizioni differenti smetta di funzionare, la cosa fatta bene, probabilmente funzionerà sempre!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.