+ Rispondi al Thread
Visualizzazione dei risultati da 1 a 2 su 2

Discussione: Ridimensionamento con scritta

  1. #1
    L'avatar di klinik
    klinik non è in linea Novello
    Luogo
    Italy
    Post
    9
    Salve, ho 2 scriptini in asp.net, uno serve per creare delle immagini miniaturizzate mentre l'altro per stamparci sopra una scritta.
    Vorrei poter fare tutte e due le cose con uno scrip unico, cioè una minatura con una scritta sopra.
    C'è qualcuno che riesce a "fondere" i due script??

    ridimensionamento:
    <%@ Import Namespace="System.Drawing"%>
    <%@ Import Namespace="System.Drawing.Imaging"%>
    <SCRIPT RUNAT="SERVER">
    Sub Page_Load()

    ' imposta altezza e larghezza delle miniature
    ' parametro preso dalla stringa della foto

    Dim width as Integer = Request.QueryString("w")
    Dim height as Integer = Request.QueryString("h")

    try
    ' ricava dimensioni dalla richiesta
    if not Request.QueryString("width") is Nothing Then
    width = Int32.Parse(Request.QueryString("width"))
    End if
    if not Request.QueryString("height") is Nothing Then
    height = Int32.Parse(Request.QueryString("height"))
    End if

    catch ex as Exception
    End Try

    ' ridimensiona l'immagine se specificato

    Dim immagine as String = Server.MapPath(Request("img"))
    if Not System.Io.File.Exists(immagine) then
    immagine = Server.MapPath("/immagini/nondisponibile.jpg")
    end if

    call ImgRedim(immagine, width, height)

    ' fermo il resto della risposta
    Response.End()
    End Sub

    ' Funzione di redim
    Public Sub ImgRedim(immagine as String, width as Integer, height as Integer)
    Dim bmp as System.Drawing.Bitmap = CType(System.Drawing.Image.FromFile(immagine), System.Drawing.Bitmap)

    ' c'è da ridimensionare?
    if width>0 or height>0 then
    ' se è specificata solo la larghezza, calcola l'altezza
    if height = 0 Then
    height = Convert.ToInt32(width / bmp.Width * bmp.Height)
    End if

    ' (e viceversa)
    if width = 0 Then
    width = Convert.ToInt32(height / bmp.Height * bmp.Width)
    End if

    ' creo la Thumbnail con i parametri impostati
    Dim miniaturabmp as New System.Drawing.Bitmap(bmp, width, height)

    ' salvo sullo stream di output
    if immagine.EndsWith(".jpg") Then
    miniaturabmp.Save(Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg)
    else
    miniaturabmp.Save(Response.OutputStream, System.Drawing.Imaging.ImageFormat.Gif)
    end if

    ' pulizia
    miniaturabmp.Dispose()
    else
    ' salvo sullo stream di output
    if immagine.EndsWith(".jpg") Then
    bmp.Save(Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg)
    else
    bmp.Save(Response.OutputStream, System.Drawing.Imaging.ImageFormat.Gif)
    end if
    end if

    ' pulizia finale
    bmp.Dispose()

    End Sub

    </SCRIPT>

    scritta:

    <%@ import Namespace="System.Drawing" %>
    <%@ import Namespace="System.Drawing.Imaging" %>
    <%@ Page Language="vb" AutoEventWireup="false" %>
    <html>
    <body>
    <script runat="server">

    Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    'prendo i dati dalla pagina
    Dim fileOriginale As String = Convert.ToString(Request.QueryString("File"))
    'Dim Stringa As String = Convert.ToString(Request.QueryString("Stringa"))
    Dim Stringa ="© 2005 By www..it"
    'Dim myFontColorTemp As String = Convert.ToString(Request.QueryString("Color"))
    Dim myFontColorTemp ="yellow"
    Dim myFontName As String = Convert.ToString(Request.QueryString("Font"))
    'Dim myX As Single = Convert.ToSingle(Request.QueryString("X"))
    Dim myX ="10"
    'Dim myY As Single = Convert.ToSingle(Request.QueryString("Y"))
    Dim myY ="200"
    'Dim myFontDim As Single = Convert.ToSingle(Request.QueryString("Dim"))
    Dim myFontDim ="40"

    'setto le mancanze
    If fileOriginale = String.Empty Then fileOriginale = "Vuoto.jpg"
    If Stringa = String.Empty Then Stringa = "[Errore nel caricamento.]" & vbNewLine & vbNewLine & vbNewLine & _
    "Es: page.aspx?File=imm.jpg&Stringa=Ciao" & vbNewLine & vbNewLine & _
    "Parametri:" & vbNewLine & vbNewLine & _
    " - 'file' = immagine su cui scrivere" & vbNewLine & _
    " - 'stringa' = testo da scrivere" & vbNewLine & _
    " - 'font' = font carattere" & vbNewLine & _
    " - 'color' = colore scritta" & vbNewLine & _
    " - 'dim' = dimensione scritta" & vbNewLine & _
    " - 'x' = posizione x" & vbNewLine & _
    " - 'y' = posizione y"

    If myX < 0 Then myX = 10
    If myY < 0 Then myY = 10
    If myFontDim < 6 Then myFontDim = 14

    If myFontColorTemp = String.Empty Then myFontColorTemp = "Black"
    Dim myFontColor As System.Drawing.Color = System.Drawing.Color.FromName(myFontColorTemp)

    If myFontName = String.Empty Then myFontName = "FixedSys"

    'istanzio le var
    ' occhio alla path della foto mettere \nomecartella\ anche se l'immagine è assieme al file
    Dim myImage As System.Drawing.Image = System.Drawing.Image.FromFile(Server.MapPath("\a\" & fileOriginale))
    Dim myGraphics As Graphics = Graphics.FromImage(myImage)
    Dim DrawFont As New Font(myFontName, myFontDim, FontStyle.Bold)
    Dim DrawBrush As New SolidBrush(myFontColor)
    myGraphics.DrawString(Stringa, DrawFont, DrawBrush, myX, myY)

    'rispondo il file modificato
    Response.ContentType = "image/jpeg"
    myImage.Save(Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg)
    myImage.Dispose()
    myGraphics.Dispose()

    End Sub

    </script>
    </body>
    </html>


    Gabb

  2. #2
    mercuzio non è in linea Novello
    Post
    5
    Scusa non sono in grado di darti la risposta, anche se secondo me non sarebbe male tenere gli script separati e scegliere tu se "watermarkare" le immagini o no.

    tanto solitamente queste cose avvengono in un while
    resize.aspx?Filename=public/<%=off_RS("foto_1")%>
    timbra.aspx?Filename=public/<%=off_RS("foto_1")%>

    mi introduco per chiederti un grande aiuto

    Quote Originariamente inviato da klinik
    ' c'è da ridimensionare?
    if width>0 or height>0 then
    ' se è specificata solo la larghezza, calcola l'altezza
    if height = 0 Then
    height = Convert.ToInt32(width / bmp.Width * bmp.Height)
    End if
    Gabb
    anch'io utilizzo un script simile, ma non riesco a fare il test se larg_img_originale > larg_parametro
    effettua il resize
    else
    non effettuare il resize
    endif

    per impedire un effetto di zoom opposto che sgranerebbe le foto

    Ciao e Grazie

+ Rispondi al Thread

Discussioni simili

  1. Problemi Sorted con ListView
    Da Morpheus80 nel forum Visual Basic 6
    Risposte: 19
    Ultimo Post: 09-03-2005, 19:02
  2. Label con scritta in verticale
    Da Marcowa nel forum Visual Basic 6
    Risposte: 5
    Ultimo Post: 22-01-2005, 10:30
  3. Salvare con ridimensionamento
    Da matteovent nel forum Visual Basic 6
    Risposte: 5
    Ultimo Post: 19-03-2004, 20:42
  4. Prblemi con Nero
    Da Nico nel forum Microsoft Windows
    Risposte: 3
    Ultimo Post: 23-08-2003, 22:31

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi