Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
ASP.NET 2.0 / 3.5 / 4.0
Lightbox con datalist
lunedì 14 giugno 2010 - 07.13
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
basicdany
Profilo
| Expert
590
messaggi | Data Invio:
lun 14 giu 2010 - 07:13
ciao ho realizzato un galleria di img e uso lightpbx per visualizzare l'anteprima, :
<asp:DataList ID="DataList1" runat="server" RepeatDirection="Horizontal"
BorderColor="Aqua" RepeatColumns="8">
<ItemTemplate>
<a href='<%# "ShowImagePerIDImmobile.ashx?Idfoto=" & Eval("Idfoto") %>' rel="lightbox">
<asp:Image ID="Image1" runat="server" ToolTip="clicca perl'anteprima" whith = "200" height = "200"
ImageUrl='<%# "~/ShowImagePerIDImmobile.ashx?Idfoto=" & Eval("Idfoto") %>' />
</a>
<br />
</ItemTemplate>
</asp:DataList>
IL PROBLEMA E CHE LIGHTBOX NON EFFETTUA IL RESIZE DELL'IMMAGINE, INFATTI UN'IMMAGINE ESE DI 1024 * 768 LA VISUALIZZA MOLTO
GRANDE,QUALCUNO SA COME RISOLVERE QUESTO PROBLEMA?
ALTRIMENTI ABBANDONO L'IDEA DI USARE LIGHTBOX , COME POTREI VISUALIZZARE L'IMMAGINE CHE SI CLICCA NEL DATALIST IN UN CONTROLLO IMAGE.
GRAZIE A TUTTI
motogpdesmo16
Profilo
| Senior Member
201
messaggi | Data Invio:
mer 16 giu 2010 - 22:54
Non è "colpa" del lightbox bensì dell'handler HTTP che utilizzi per caricare l'immagine. L'handler deve restituire già l'immagine ridimensionata secondo quelle che sono le tue esigenze.
Se posso permettermi di dare un consiglio evita, nel thumbnail, di impostare manualmente le dimensioni di larghezza ed altezza ma deve essere sempre l'handler ad effettuare il ridimensionamento onde evitare lo stretch dell'immagine stessa. Ovviamente i parametri di ridimensionamento possono tranquillamente essere passati via querystring e quindi potrai benissimo fare w=XXX&h=XXX (per passare le dimensioni di larghezza (w = width) e altezza (h = height)) oppure, come sono solito fare io, prevedo anche un terzo parametro che mi effettua il ridimensionamento di altezza e larghezza di un dato valore x=XXX (dove x appunto provvede, nell'handler, ad effettuare il ridimensionamento di larghezza e altezza). Su internet trovi davvero molta roba riguardante il prelievo e il ridimensionamento di immagini dal database oppure da un path specifico nella tua applicazione.
basicdany
Profilo
| Expert
590
messaggi | Data Invio:
mer 16 giu 2010 - 23:40
ciao, puoi passarmi tu come fare questo ridimensionamento in modo da evitare questo problema o cosa cercare di preciso su internet, perche' le immagini possono di varie dimensioni e risoluzione, quindi ho davvero bisogno di ridimensionare.
grazie fatemi sapere.
motogpdesmo16
Profilo
| Senior Member
201
messaggi | Data Invio:
gio 17 giu 2010 - 00:08
Su internet puoi cercare handler ashx per ridimensionamento immagini o qualcosa di simile anche in inglese.
Occhio però all'algoritmo di ridimensionamento: fermo restando che le dimensioni possono essere le più disparate, devi valutare se il ridimensionamento è necessario per il lato lungo, per quello corto o per entrambi in base al parametro o ai parametri di ridimensionamento che vengono passati nella querystring.
Esempio. Se nella Querystring passo w=500&h=300 e la mia immagine è 640x480, allora il ridimensionamento deve avvenire per entrambi i lati mantenendo sempre le proporzioni in termini di lunghezza e altezza (640/480 = 1.33 e quindi anche l'immagine ridimensionata deve avere le proporzioni di 1.33 tra lunghezza e altezza). Stesso discorso se l'immagine è verticale.
basicdany
Profilo
| Expert
590
messaggi | Data Invio:
gio 17 giu 2010 - 07:30
Ciao ma praticamente io uso gia un handler per caricare l'immagine dal db:
<%@ WebHandler Language="vb" Class="ShowImage" %>
Imports System
Imports System.Configuration
Imports System.Web
Imports System.IO
Imports System.Data
Imports System.Data.SqlClient
Public Class ShowImage
Implements IHttpHandler
Public Sub ProcessRequest(ByVal context As HttpContext) Implements IHttpHandler.ProcessRequest
Try
Dim empno As Int32
If Not context.Request.QueryString("id") Is Nothing Then
empno = Convert.ToInt32(context.Request.QueryString("id"))
Else
Throw New ArgumentException("No parameter specified")
End If
context.Response.ContentType = "image/jpeg"
Dim strm As Stream = ShowEmpImage(empno)
Dim buffer As Byte() = New Byte(4095) {}
Dim byteSeq As Integer = strm.Read(buffer, 0, 4096)
Do While byteSeq > 0
context.Response.OutputStream.Write(buffer, 0, byteSeq)
byteSeq = strm.Read(buffer, 0, 4096)
Loop
'context.Response.BinaryWrite(buffer);
Catch
End Try
End Sub
Public Function ShowEmpImage(ByVal idfoto As Integer) As Stream
Dim conn As String = ConfigurationManager.ConnectionStrings("GPIConnectionString").ConnectionString
Dim connection As SqlConnection = New SqlConnection(conn)
Dim sql As String = "SELECT foto FROM foto WHERE idfoto = @ID"
Dim cmd As SqlCommand = New SqlCommand(sql, connection)
cmd.CommandType = CommandType.Text
cmd.Parameters.AddWithValue("@ID", idfoto)
connection.Open()
Dim img As Object = cmd.ExecuteScalar()
Try
Return New MemoryStream(CType(img, Byte()))
Catch
Return Nothing
Finally
connection.Close()
End Try
End Function
Public ReadOnly Property IsReusable() As Boolean Implements IHttpHandler.IsReusable
Get
Return False
End Get
End Property
End Class
Sono poco pratico di aps.net,non capisco cosa devo fare, puoi darmi dire praticamente cosa devo fare per fare il ridimensionamento.
Graize
alexmed
Profilo
| Guru
1.186
messaggi | Data Invio:
ven 18 giu 2010 - 08:57
Utilizza questa versione di Lightbox che supporta il ridimensionamento automatico:
http://seb.box.re/2006/11/22/lightbox-2-auto-resizing-enhancement
Ciao
alexmed
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !