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