Hur gör man för att ändra storlek på bilder i ASP.Net? Jag håller på med en sida där man ska kunna ladda upp bilder och jag vill göra två saker: Här kommer en lite funktion som du kan ta hjälp av. Såhär löste jag det:Ändra storlek på bilder.
1. Begränsa storleken på bilden till max 600*450 pixels
2. Även skapa en liten thumbnail
Att göra en liten thumbnail är inget problem men kompressionen är lite för hög för större bilder. Man ska kunna ställa in kompressionen på nåt sett men hur? Har någon tips eller exempel på hur man ändrar storlek på lite större bilder och ställer in kompression?Sv: Ändra storlek på bilder.
<code>
Public Shared Function CreateTumbNail(ByVal strPath As String, ByVal strFilePath As String)
Dim objBMP As System.Drawing.Bitmap
Dim objGraphics As System.Drawing.Image
Dim maxImage As Integer = 200
'open image
objBMP = New Bitmap(strPath & GetName(strFilePath) & "." & GetExtension(strFilePath))
Dim imgw As Integer = objBMP.Width
Dim imgh As Integer = objBMP.Height
' Creating a Thumbnail with scale
Dim newimgw As Integer
Dim newimgh As Integer
If imgw > imgh Then
newimgw = maxImage
newimgh = (imgh * maxImage) / imgw
ElseIf imgh > imgw Then
newimgw = (imgw * maxImage) / imgh
newimgh = maxImage
Else
newimgw = imgw
newimgh = imgh
End If
Try
'ThumbNail it!!
objGraphics = objBMP.GetThumbnailImage(newimgw, newimgh, Nothing, IntPtr.Zero)
' creates the name
objGraphics.Save(strPath & GetName(strFilePath) & "-tumbnail." & GetExtension(strFilePath))
Catch Exp As Exception
Return Exp.ToString
End Try
End Function
</code>Sv: Ändra storlek på bilder.
<code>
<%@ Page Language="VB" Debug="true" %>
<%@ Import Namespace=System.Drawing %>
<%@ Import Namespace=System %>
<%@ Import Namespace=System.IO %>
<%@ Import Namespace=System.Web %>
<script language="VB" runat="server">
Sub Page_Load(Sender As Object, E As EventArgs)
dim storefile As directory
Dim directory As String
Dim files As String()
Dim File As String
files = storefile.GetFiles(Server.MapPath("/resebilder"), "*")
For Each File In files
Response.Write(File & "<br>")
braBild(File)
Next
End Sub
Public Sub braBild(strBild As String)
Try
' Orginalbilden
Dim objOrginal As System.Drawing.Image
objOrginal = objOrginal.FromFile(strBild)
Dim intMaxBredd As Integer = 750
Dim intMaxHojd As Integer = 550
Dim intNyaHojd,intNyBredd As Integer
' Kolla om den måste förminskas
If objOrginal.Width > intMaxBredd OR objOrginal.Height > intMaxHojd Then
If objOrginal.Width >= objOrginal.Height AND objOrginal.Width > intMaxBredd
intNyBredd = intMaxBredd
intNyaHojd = (objOrginal.Height / objOrginal.Width) * intMaxBredd
Else
intNyaHojd = intMaxHojd
intNyBredd = (objOrginal.Width / objOrginal.Height) * intMaxHojd
End If
' Skapa bitmapp med rätt storlek
Dim objBitmap As Bitmap = New Bitmap(intNyBredd,intNyaHojd)
' Skapa graphic object
Dim objGraphics As Graphics = Graphics.FromImage(objBitmap)
objGraphics.InterpolationMode = Drawing2D.InterpolationMode.HighQualityBicubic
objGraphics.DrawImage(objOrginal, 0, 0, intNyBredd, intNyaHojd)
objOrginal.Dispose()
' Spara den nya bilden
objBitmap.Save(strBild, Imaging.ImageFormat.Jpeg)
Response.Write("Ändrad bild: " & strBild & "<br>")
Else
objOrginal.Dispose()
End If
Catch
Response.Write("Det blev något fel!")
End Try
End Sub
</script>
</code>