Pagina 1 di 4 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 40
  1. #1

    Ritagliare una Immagine

    Salve,

    volevo sapere se si poteva ritagliare una parte di un'immagine e poi metterla in un riquadro di dimensioni fisse

    ad esempio:

    il mio riquadro fisso è 200x300 pixel con sfondo bianco

    ritaglio una parte dell'immagine, diciamo 100x300pixel

    vorrei che la parte che ho tagliata venga posizionata al centro del riquadro in maniera che ai lati appaia un bordo bianco (Essendo l'immagine che ritaglio meno larga del riquadro)


    lo script per tagliare l'immagine l'ho trovato, avete idea adesso come faccio ad unire l'immagine al riquadro bianco?

    grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Jan 2002
    Messaggi
    687
    ti posso chiedere dove l'hai trovato lo script per ritagliare l'immagine??

    ciao

  3. #3
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    questa è solo una prova (non sono esperto di grafica, perciò controlla )

    pagina a.aspx
    codice:
    <%@ Page Language="VB" AutoEventWireup="false" CodeFile="a.aspx.vb" Inherits="prove_a" %>
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    
    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
        <title>Pagina senza titolo</title>
    </head>
    <body style="background-color:Black">
        <form id="form1" runat="server">
        <div>
            [img]a.aspx?img=0[/img]<%--immagine normale--%>
            [img]a.aspx?img=1[/img]<%--immagine ritagliata 280x180--%>
            [img]a.aspx?img=2[/img]<%--immagine ritagliata 280x180 inserita dentro un riquadro bianco di 300x200--%>
        </div>
        </form>
    </body>
    </html>
    codice collegato
    codice:
    Option Strict On
    
    Partial Class prove_a
        Inherits System.Web.UI.Page
    
        Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
            Dim img As String = RequestParams("img")
            If img = "1" Then
                'immagine ritagliata 280x180
                Dim bmp As Bitmap = DirectCast(System.Drawing.Image.FromFile("C:\dati\Prove Nicon\prova.jpg"), Bitmap)
    
                ImgClip(bmp, New Rectangle(50, 100, 280, 180))
                System.Web.HttpContext.Current.Response.ContentType = "image/jpeg"
                bmp.Save(System.Web.HttpContext.Current.Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg)
                bmp.Dispose()
                System.Web.HttpContext.Current.Response.End()
    
            ElseIf img = "2" Then
                'immagine ritagliata a 280x180
                'inserita in un riquadro bianco di 300x200
    
                'leggo l'immagine da disco
                Dim bmp As Bitmap = DirectCast(System.Drawing.Image.FromFile("C:\dati\Prove Nicon\prova.jpg"), Bitmap)
    
                'taglio l'immagine dal punto 50, 100, larga 280, alta 180
                ImgClip(bmp, New Rectangle(50, 100, 280, 180))
    
                'creo il riquadro bianco 300x200
                Dim bmp1 As New Bitmap(300, 200, bmp.PixelFormat)
                bmp1.SetResolution(bmp.HorizontalResolution, bmp.VerticalResolution)
                Dim gr As Graphics = Graphics.FromImage(bmp1)
                gr.Clear(Color.White)
                gr.InterpolationMode = Drawing2D.InterpolationMode.HighQualityBicubic
                gr.DrawImage(bmp, New Rectangle(CInt((300 - bmp.Width) / 2), CInt((200 - bmp.Height) / 2), bmp.Width, bmp.Height), New Rectangle(0, 0, bmp.Width, bmp.Height), GraphicsUnit.Pixel)
    
    
    
                System.Web.HttpContext.Current.Response.ContentType = "image/jpeg"
                bmp1.Save(System.Web.HttpContext.Current.Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg)
                bmp.Dispose()
                gr.Dispose()
                bmp.Dispose()
                System.Web.HttpContext.Current.Response.End()
    
            ElseIf img = "0" Then
                'immagine originale
                Dim bmp As Bitmap = DirectCast(System.Drawing.Image.FromFile("C:\dati\Prove Nicon\prova.jpg"), Bitmap)
    
                System.Web.HttpContext.Current.Response.ContentType = "image/jpeg"
                bmp.Save(System.Web.HttpContext.Current.Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg)
                bmp.Dispose()
                System.Web.HttpContext.Current.Response.End()
            End If
        End Sub
    
        '-------------------------------------------------------------------------
        'questa procedura, data una immagine bmpSource, la ritaglia secondo il
        'rettangolo clip passato
        '-------------------------------------------------------------------------
        Public Sub ImgClip(ByRef bmpSource As Bitmap, ByVal clip As Rectangle)
            Dim bmp As New Bitmap(clip.Width, clip.Height, bmpSource.PixelFormat)
            bmp.SetResolution(bmpSource.HorizontalResolution, bmpSource.VerticalResolution)
            Dim gr As Graphics = Graphics.FromImage(bmp)
            gr.Clear(Color.White)
            gr.InterpolationMode = Drawing2D.InterpolationMode.HighQualityBicubic
            gr.DrawImage(bmpSource, New Rectangle(0, 0, clip.Width, clip.Height), clip, GraphicsUnit.Pixel)
            gr.Dispose()
            bmpSource.Dispose()
            bmpSource = bmp
    
        End Sub
    
    End Class
    Pietro

  4. #4
    Utente di HTML.it
    Registrato dal
    Jan 2002
    Messaggi
    687
    molte grazie! provo e ti dico.

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2002
    Messaggi
    687
    uhmmm va beh che di net non sono espertissimo ma come mai non trova prove_a ??

    Could not load type 'prove_a'.

  6. #6
    Utente di HTML.it
    Registrato dal
    Jan 2002
    Messaggi
    687
    allora..non va perchè il server supporta net 1.1 ......
    è possibile convertire questo script per 1.1??

    ciao!!!

  7. #7
    Utente di HTML.it
    Registrato dal
    Jan 2002
    Messaggi
    687
    naturalmente ho scritto una boiata: fa net 2 a 1.1 .....

  8. #8
    Ciao Pietro,
    Se hai tempo potresti convertire lo script in C#???
    Grazie!

    PS: io proprio il VB non lo digerisco più dai tempi dell'ASP

    Richard B. Riddick : "Non avrete mica paura del buio?"

    Scusatemi ma sono mesi che non pago piu' la bolletta della luce....

  9. #9
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Originariamente inviato da R.B. Riddick
    Ciao Pietro,
    Se hai tempo potresti convertire lo script in C#???
    Grazie!

    PS: io proprio il VB non lo digerisco più dai tempi dell'ASP

    VVoVe: ma se io ho preso spunto proprio dal tuo



    Pietro

  10. #10
    Originariamente inviato da pietro09
    VVoVe: ma se io ho preso spunto proprio dal tuo



    Sarà... comunque quando provo a convertire la tua funzione :

    codice:
        '-------------------------------------------------------------------------
        'questa procedura, data una immagine bmpSource, la ritaglia secondo il
        'rettangolo clip passato
        '-------------------------------------------------------------------------
        Public Sub ImgClip(ByRef bmpSource As Bitmap, ByVal clip As Rectangle)
            Dim bmp As New Bitmap(clip.Width, clip.Height, bmpSource.PixelFormat)
            bmp.SetResolution(bmpSource.HorizontalResolution, bmpSource.VerticalResolution)
            Dim gr As Graphics = Graphics.FromImage(bmp)
            gr.Clear(Color.White)
            gr.InterpolationMode = Drawing2D.InterpolationMode.HighQualityBicubic
            gr.DrawImage(bmpSource, New Rectangle(0, 0, clip.Width, clip.Height), clip, GraphicsUnit.Pixel)
            gr.Dispose()
            bmpSource.Dispose()
            bmpSource = bmp
    
        End Sub
    faccio un pò a cazzotti con il passaggio per riferimento che, generalmente anzi spesso,
    non utilizzo ma faccio restituire alla stessa il valore creato dall'elaborazione

    Nel caso si deva restituire più valori in output allora il tuo metodo, secondo il mio
    cervellino bacato :berto: , è il più corretto... ma in questo caso non vedo più
    di un valore da restituire quindi....
    Va bon... se proprio non hai voglia o tempo vedrò di da solo

    PS : a proposito... se uno volesse compilare il tuo script ".vb" per usarlo
    direttamente come dll.... non può, da 'na marea di errori in compilazione...
    poi sai com'è io il VB lo rifiuto ... quindi... è capace che dimentico qualcosa
    Richard B. Riddick : "Non avrete mica paura del buio?"

    Scusatemi ma sono mesi che non pago piu' la bolletta della luce....

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.