13 messaggi dal 03 novembre 2003
www.barracudas.it
Al riguardo dello script #401 - Ridimensionare le immagini con .NET vorrei sapere se è possibile passargli solo il width altrimenti mi sforma le immagini.

Per comodità vi trascrivo il codice:

<%@ Page language="c#" %>
<%@ Import namespace="System.IO" %>
<%@ Import namespace="System.Net" %>
<%@ Import namespace="System.Drawing" %>
<script runat="server">
private void ResizeAndSave(Stream imgStr,int Width, int Height,string FileName)
{
//creo il bitmap dallo stream
System.Drawing.Image bmpStream=System.Drawing.Image.FromStream(imgStr);
//creo un nuovo bitmap ridimensionandolo
Bitmap img=new Bitmap(bmpStream,new Size(Width,Height));
//salvo l'immagine ridimensionata
img.Save(FileName,System.Drawing.Imaging.ImageFormat.Jpeg);

Response.Write("saved");
}

private void CaricaClick(object sender, System.EventArgs e)
{
Environment.CurrentDirectory=AppDomain.CurrentDomain.BaseDirectory;
//controllo che sia un jpg
if (file1.PostedFile.ContentType=="image/jpeg" || file1.PostedFile.ContentType=="image/pjpeg")
{
//pass lo stream del file uplodato
ResizeAndSave(file1.PostedFile.InputStream,100,70,"img1.jpg");
//salvo così com'è
file1.PostedFile.SaveAs("img1g.jpg");
}
}

private void PrelevaClick(object sender, System.EventArgs e)
{
Environment.CurrentDirectory=AppDomain.CurrentDomain.BaseDirectory;
WebClient wDown=new WebClient();
//prelevo l'immagine dal web facendomi restituire un array di byte
//inserisco l'array di byte nello stream di memoria così lo passiamo alla funzione
MemoryStream DataM=new MemoryStream(wDown.DownloadData(url.Text));
ResizeAndSave(DataM,100,70,"img2.jpg");
}
</script>
<HTML>
<HEAD>
<title>Ridimensione immagini</title>
</HEAD>
<body>
<form id="Form1" method="post" runat="server" enctype="multipart/form-data">
<P>
Carica file <INPUT type="file" id="file1" runat="server">&nbsp;
<asp:Button id="btnCarica" runat="server" Text="Carica" OnClick="CaricaClick"></asp:Button></P>
<P>Carica url
<asp:TextBox id="url" runat="server"></asp:TextBox>
<asp:Button id="Preleva" runat="server" Text="Preleva" OnClick="PrelevaClick"></asp:Button></P>
<P>&nbsp;
</P>
</form>
</body>
</HTML>




grazie in anticipo

"Dai diamanti non nasce niente, dal letame nascon i fior (F.De André)"
2.198 messaggi dal 30 novembre 2001
certo che puoi, e nella funzione gli lasci inalterata l'altezza.
13 messaggi dal 03 novembre 2003
www.barracudas.it
chiccosimo ha scritto:
certo che puoi, e nella funzione gli lasci inalterata l'altezza.

scusa se sono gnucco ma non riesco a capire in che senso lasco inalterata l'altezza

"Dai diamanti non nasce niente, dal letame nascon i fior (F.De André)"
2.198 messaggi dal 30 novembre 2001
nel senso che lasci l'altezza dell'immagine originale senza modificarla, se è questo il tuo scopo, comunque io ho utilizzato lo stesso script per ridimensionare le immagini, controllando però che l'altezza e la larghezza dei thumbnail non siano maggiori di quelli originali:è in VB.NET, ma puoi facilmente tradurlo in C#

Sub ResizeAndSave(ByVal imgStr As Stream, ByVal ImgMax As Integer, ByVal FileNameThumb As String)
'creo il bitmap dallo stream
Dim bmpStream As System.Drawing.Image = System.Drawing.Image.FromStream(imgStr)
Dim ImgageWidth As Integer = bmpStream.Width
Dim ImageHeight As Integer = bmpStream.Height
Dim NewImageWidth As Integer
Dim NewImageHeight As Integer
If ImgageWidth > ImageHeight Then
NewImageWidth = ImgMax
NewImageHeight = (ImageHeight * ImgMax) / ImgageWidth
ElseIf ImageHeight > ImgageWidth Then
NewImageHeight = ImgMax
NewImageWidth = (ImgageWidth * ImgMax) / ImageHeight
Else
NewImageHeight = ImgMax
NewImageWidth = ImgMax
End If
'creo un nuovo bitmap ridimensionato
Dim Immagine As Bitmap = New Bitmap(bmpStream, New Size(NewImageWidth, NewImageHeight))
...
End Sub
2 messaggi dal 22 maggio 2012
qual'è e dove posso aggiungere la funzione matematica per generare le miniature con le stese proporzioni degli originali (sia per immagini orizzontai che verticali)? grazie

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.