Visualizzazione dei risultati da 1 a 4 su 4

Discussione: Crop e Resize al volo

  1. #1
    Utente di HTML.it L'avatar di Luca1317
    Registrato dal
    Dec 2001
    Messaggi
    1,258

    Crop e Resize al volo

    Ho trovato in rete questo script che processa al volo un'immagine tagliandola e ridimensionandola per creare un quadrato

    l'unico problema è che se la uso su un'immagine ad es 1.jpg quest'ultima non riesco a cancellarla manualmente perchè resta bloccata anche se il browser viene chiuso...in pratica lo script sembra continuare ad operare anche quando non serve.

    codice:
    <%@ Page Language="VB"%>
    <%@ import Namespace="System.Drawing"%>
    <%@ import Namespace="System.Drawing.Imaging"%>
    <%@ import Namespace="System.Text.RegularExpressions"%>
    
    <%
    dim strFilename as string
    dim i as System.Drawing.Image
    dim b as System.Drawing.bitmap
    dim g as graphics
    If Left(request.QueryString("img"),4) = "http" then
    	'Response.Write("case1
    ")
    	strFilename=server.mappath(right(request.QueryString("img"),len(request.QueryString("img"))-len(Request.ServerVariables("SERVER_NAME"))-7))
    else
    	'Response.Write("case2
    ")
    	strFilename = server.mappath(request.QueryString("img"))
    end if
    i = System.Drawing.Image.FromFile(strFilename)
    b = New system.drawing.bitmap(request.QueryString("opx"), request.QueryString("opx"), pixelformat.format24bpprgb)
    g = graphics.fromimage(b)
    g.InterpolationMode = 2
    g.SmoothingMode = 4
    g.PixelOffsetMode = 4
    g.CompositingQuality = 4
    
    ’ scale and translate the image
    Dim NewLar, NewAlt, SrcX, SrcY
    If i.height>i.width then
    	NewLar = i.width
    	NewAlt = i.width
    	SrcX=0
    	SrcY = (((i.height*request.QueryString("opx"))/i.width)-request.QueryString("opx"))/2
    else
    	NewLar = i.height
    	NewAlt = i.height
    	SrcY = 0
    	SrcX = (((i.width*request.QueryString("opx"))/i.height)-request.QueryString("opx"))/2
    
    end if
    g.drawimage(i,New rectangle(0,0,request.QueryString("opx"),request.QueryString("opx")), New rectangle(SrcX,SrcY,NewLar,NewAlt), GraphicsUnit.Pixel)
    'Response.Write(NewLar & " " & NewAlt & " " & SrcX & " " & SrcY)
    response.contenttype="image/jpeg"
    b.save(response.outputstream, imageformat.jpeg)
    b.dispose() 
    %>

  2. #2
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Puoi farmi un esempio di come richiami il codice? :master:
    Pietro

  3. #3
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    va bene, in attesa della risposta...

    Response.ContentType = "image/jpeg"
    b.Save(Response.OutputStream, ImageFormat.Jpeg)
    g.Dispose()
    b.Dispose()
    i.Dispose()
    Response.End()
    Pietro

  4. #4
    Utente di HTML.it L'avatar di Luca1317
    Registrato dal
    Dec 2001
    Messaggi
    1,258
    perfetto...funziona perfettamente :-)

    mi permetto di azzardare una domanda ...se volessi invece creare dei rettangoli invece di fare solo quadrati?

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.