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

    [c#] Aiuto disegnare rettangolo

    ragazzi non riesco a disegnare un rettangolo su un'immagine bmp posto la procedura qui sotto:

    private void disegnaRettangolo(string nomeImg, string c, double larg, double alt)
    {
    int x1, y1, l, a;
    string[] appo = new string[9];
    appo = c.Split(' ');
    x1 = Convert.ToInt32(appo[1]);
    y1 = Convert.ToInt32(appo[2]);

    l = Convert.ToInt32(larg);
    a = Convert.ToInt32(alt);

    Bitmap myBitmap = new Bitmap(nomeImg);
    Graphics g = Graphics.FromImage(myBitmap);

    System.Drawing.Pen myPen = new System.Drawing.Pen(System.Drawing.Color.Red);

    g.DrawRectangle(myPen, new Rectangle(x1, y1, l, a));

    g = this.CreateGraphics();
    g.DrawImage(myBitmap, 1, 1);

    myPen.Dispose();
    g.Dispose();

    }

    Dove Sbaglio ???
    FestaDj.it - DeeJay per feste musica per l'intrattenimento
    ExpoLine.it - Passatempo e Risorse per Webmaster.
    SuperAst.it - Mercatino web annunci gratuiti.

  2. #2
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    il codice è basic, ma non avrai difficoltà a trasformarlo in c#

    Allora, leggo una immagine dal disco, la bordo con un rettangolo rosso spesso 4px, scrivo al centro una stringa semitrasparente, salvo l'immagine nel disco.
    'ultima istruzione salva l'immagine nel flusso di uscita (solo per pagine web)

    codice:
        Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
            Dim immagineInput As String = "C:\dati\Prove Nicon\prova.jpg" 'percorso immagine
            Dim bmp As Bitmap = Nothing
            Dim gr As Graphics = Nothing
            Dim w As Integer = 4 'larghezza penna
    
            Try
                'recupero l'immagine
                bmp = DirectCast(System.Drawing.Image.FromFile(immagineInput), System.Drawing.Bitmap)
    
                'recupero l'oggetto graphics
                gr = Graphics.FromImage(bmp)
    
                'imposto la qualità
                gr.SmoothingMode = Drawing2D.SmoothingMode.HighQuality
                gr.PixelOffsetMode = Drawing2D.PixelOffsetMode.HighQuality
                gr.CompositingQuality = Drawing2D.CompositingQuality.HighQuality
    
                'disegno un rettangolo rosso che borda l'immagine, spesso w px
                gr.DrawRectangle(New Pen(Color.Red, (w + w)), 0, 0, bmp.Width, bmp.Height)
    
                'scrivo il carattere gX nel centro dell'immagine, colore giallo, semitrasparente
                Dim s As String = "gX"
                Dim f As New Font("Arial", 200, FontStyle.Regular, GraphicsUnit.Point)
                Dim size As SizeF = gr.MeasureString(s, f)
    
                gr.DrawString(s, f, New SolidBrush(Color.FromArgb(100, 255, 255, 0)), ((bmp.Width - size.Width) / 2), ((bmp.Height - size.Height) / 2))
    
                'salvo l'immagine nel disco
                bmp.Save("c:\tmp\prova1.jpg", System.Drawing.Imaging.ImageFormat.Jpeg)
    
                'salvo l'immagine nello stream di uscita
                bmp.Save(System.Web.HttpContext.Current.Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg)
    
    
            Catch ex As Exception
                'stampo a video messaggio errore
                PrintLn(ex.ToString())
    
            Finally
                'libero le risorse
                If bmp IsNot Nothing Then bmp.Dispose()
                If gr IsNot Nothing Then gr.Dispose()
    
            End Try
    
        End Sub
    Pietro

  3. #3
    in effetti ho risolto grazie bisognava salvarla!!!!

    era piu semplice del previsto grazie ancora !!!
    FestaDj.it - DeeJay per feste musica per l'intrattenimento
    ExpoLine.it - Passatempo e Risorse per Webmaster.
    SuperAst.it - Mercatino web annunci gratuiti.

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.