上传图片并生成缩略图
2010-5-21编辑:mal
Sub upimages()
Dim iname As String
If Not (fileup.PostedFile Is Nothing) Then
Dim namestr1 As String = (fileup.PostedFile.FileName)
If LCase(fileup.PostedFile.ContentType.ToString()) = "image/pjpeg" Or LCase(fileup.PostedFile.ContentType.ToString()) = "image/jpg" Then
Dim j As Integer = namestr1.LastIndexOf(".")
Dim newname As String = namestr1.Substring(j) '圖片得到後輟名
iname = CStr(Now.ToFileTimeUtc) '隨機的文件名(不會重復)
Dim newnames As String = iname + newname '重新組合文件名
Dim i As Integer = namestr1.LastIndexOf("\") + 1
Dim namestr As String = namestr1.Substring(i)
fileup.PostedFile.SaveAs(Server.MapPath(imagelocal) + "\" + newnames) '保存文件到imagelocal文件夾
'生成縮略圖()
Dim image, sImage As System.Drawing.Image
image = System.Drawing.Image.FromStream(fileup.PostedFile.InputStream)'得到原图
Dim width As Decimal = image.Width过且过'得到原图的宽
Dim height As Decimal = image.Height'得到原图的高
Dim newwidth, newheight As Integer
'设置缩略图的高和宽
If (width > height) Then
newwidth = 150
newheight = CInt(height / width * 150)
Else
newheight = 150
newwidth = CInt(width / height * 150)
End If
sImage = image.GetThumbnailImage(newwidth, newheight, Nothing, IntPtr.Zero)
Dim x As Integer = sImage.Width / 2 - 30
Dim y As Integer = sImage.Height - 20
Dim output As Bitmap = New Bitmap(sImage)
Dim g As Graphics = Graphics.FromImage(output)
' 給縮略圖加上版權信息()
Dim fonts As New Font("Courier New", 9)
g.DrawString("版權信息", fonts, New SolidBrush(Color.Red), x, y)
output.Save(Server.MapPath("Simagelocal") + "\s_" + newnames, System.Drawing.Imaging.ImageFormat.Jpeg)
'保存縮略圖到Simagelocal文件夾
Image1.Visible=true;
Image1.ImageUrl = "Simagelocal" + "\s_" + newnames
Else
Label1.Text = "請選擇jpg類型的圖片"
End If
End If
End Sub