Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    [VB.NET] Scrivere testo su un immagine

    Ciao a tutti,

    Sto scrivendo un programma che scrive un testo sopra un immagine e poi la salva, il problema è che se il testo è troppo lungo esce dall'immagine, c'è un modo per fare che se arriva al limite dell'immagine vada a capo?

    Altra piccola domanda: VB.NET salva le immagini in JPG o cosa?
    Grazie mille

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2006
    Messaggi
    111
    Imposta una TextBox trasparente multilinea...

  3. #3
    la mia textbox è già multilinea, il problema è che dato che tutte le immagini sono di dimensioni diverse vorrei che appena arriva al limite dell'immagine vada a capo, il codice che uso per scrivere sull'immagine è questo:
    codice:
            Dim img As Image = Image.FromFile("c:\tempo.jpg")
            Dim g As Graphics = Graphics.FromImage(img)
    
            Dim fnt As New Font("Script MT", 50, FontStyle.Bold, GraphicsUnit.Pixel)
    
            Dim brush1 As Brush = New SolidBrush(Color.Black)
    
            Dim pt As New Point(10, 10)
    
            g.DrawString(TextBox2.Text, fnt, brush1, pt)
    
            img.Save("c:\temp.jpg")

  4. #4
    Utente di HTML.it L'avatar di Vinsent
    Registrato dal
    May 2011
    Messaggi
    314
    Potresti usare MeasureString:
    http://msdn.microsoft.com/it-it/libr...v=vs.100).aspx
    per "misurare" il testo e con qualche calcolo andare a capo.
    Ciao

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    455
    Originariamente inviato da al-tech@123
    la mia textbox è già multilinea, il problema è che dato che tutte le immagini sono di dimensioni diverse vorrei che appena arriva al limite dell'immagine vada a capo, il codice che uso per scrivere sull'immagine è questo:
    codice:
            Dim img As Image = Image.FromFile("c:\tempo.jpg")
            Dim g As Graphics = Graphics.FromImage(img)
    
            Dim fnt As New Font("Script MT", 50, FontStyle.Bold, GraphicsUnit.Pixel)
    
            Dim brush1 As Brush = New SolidBrush(Color.Black)
    
            Dim pt As New Point(10, 10)
    
            g.DrawString(TextBox2.Text, fnt, brush1, pt)
    
            img.Save("c:\temp.jpg")
    Prendi la lunghezza del testo con TextBox.Text.Length e dopo la moltiplichi * 10
    dovresti fare un pò di prove fino a che non ottieni la lunghezza del testo giusta.

    dovresti sapere da quanti Pixel è composta una lettera...
    su questo non mi sono approfondito ma mi sono limitato ad andare a tentativi.

    poi fai una condizione if che verifica se questo valore supera la grandezza dell'immagine.

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 © 2025 vBulletin Solutions, Inc. All rights reserved.